Function at 0x4712a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ecx + 8]
mov dword [esp + 0x74], eax
mov eax, dword [ecx]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 8], eax
mov dword [esp + 0x3c], esi
push edi
mov edi, edx
test esi, esi
jne 0x471308
cmp dword [ecx + 0x74], esi
jne 0x4712f1
test byte [eax + 0x4c], 8
jne 0x4712f1
mov byte [ecx + 0x17], 1
call fcn.0042a700
mov esi, eax
mov dword [esp + 0x40], eax
test esi, esi
je 0x476228
mov ecx, dword [esp + 0x14]
or dword [esi + 0xa0], 0x20
lea eax, [esp + 0x7c]
push eax
push ebx
mov edx, edi
mov dword [ecx + 0x2c], 2
call fcn.00456580
mov ecx, eax
add esp, 8
mov dword [esp + 0x1c], ecx
test ecx, ecx
js 0x476228
mov eax, dword [esp + 0xc]
mov edi, ecx
shl edi, 4
add edi, dword [eax + 0x10]
mov dword [esp + 0x6c], edi
cmp ecx, 1
jne 0x47135e
mov ecx, dword [esp + 0x14]
call fcn.0045e3b0
test eax, eax
jne 0x476228
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x7c]
mov ecx, eax
call fcn.00456420
mov dword [esp + 0x20], eax
test eax, eax
je 0x476228
cmp dword [ebp + 0x10], 0
je 0x471392
push dword [esp + 0x78]
push 0x4dfb78
push dword [esp + 0x14]
call fcn.00406f50
add esp, 0xc
jmp 0x47139f
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0xc]
call fcn.00456420
cmp dword [ebx + 4], 0
mov dword [esp + 0x10], eax
jbe 0x4713ad
mov ebx, dword [edi]
jmp 0x4713af
xor ebx, ebx
mov ecx, dword [esp + 0x14]
mov edx, 0x13
push ebx
push eax
push dword [esp + 0x28]
mov dword [esp + 0x40], ebx
call fcn.00454a20
add esp, 0xc
test eax, eax
jne 0x476208
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], 0
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1c4], 0
mov dword [esp + 0x18], 1
test eax, eax
je 0x471425
push eax
call dword [0x4ebac8]
mov ecx, dword [esp + 0x10]
add esp, 4
test ebx, ebx
je 0x47143b
mov edx, ebx
call fcn.004564b0
mov ebx, eax
test ebx, ebx
jns 0x47143d
jmp 0x4714c2
xor ebx, ebx
mov eax, dword [esp + 0xc]
add ebx, ebx
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + ebx*8 + 4]
test ebx, ebx
je 0x4714c2
cmp byte [ebx + 9], 0
je 0x471464
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x471464
mov ecx, ebx
call fcn.0041a4e0
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x1c4]
mov dword [esp + 0x7c], ecx
mov eax, dword [eax + 0x40]
mov ecx, dword [eax]
test ecx, ecx
jne 0x47148a
mov dword [esp + 0x18], 0xc
jmp 0x4714a1
lea edx, [esp + 0x8c]
push edx
push 0xe
push eax
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x7c]
mov dword [ecx + 0x1c4], eax
cmp byte [ebx + 9], 0
je 0x4714c2
add dword [ebx + 0xc], 0xffffffff
jne 0x4714c2
mov ecx, ebx
call fcn.0041a4c0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4714d7
push eax
call dword [0x4ebad0]
add esp, 4
mov ebx, dword [esp + 0x18]
test ebx, ebx
jne 0x4715ee
mov ebx, 1
mov ecx, esi
mov edx, ebx
call fcn.0042cbd0
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x471512
mov edx, dword [esp + 0x8c]
mov ecx, dword [esi + 0x7c]
push 0xffffffffffffffff
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00429a80
add esp, 0x10
mov edi, dword [esp + 0x8c]
test edi, edi
je 0x476208
push edi
mov edx, ebx
mov ecx, esi
call fcn.0042aa50
mov ecx, dword [esi + 0x74]
add esp, 4
cmp dword [esi + 0x78], ecx
jg 0x47154d
push 0
push 1
push 1
mov edx, 0x52
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x471578
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x8c]
test edi, edi
je 0x476208
cmp dword [0x4eba78], 0
je 0x4715df
mov eax, dword [0x4ee110]
test eax, eax
je 0x4715a3
push eax
call dword [0x4ebac8]
add esp, 4
push edi
call dword [0x4ebaa4]
sub dword [0x4edf18], eax
add esp, 4
dec dword [0x4edf3c]
push edi
call dword [0x4eba9c]
mov eax, dword [0x4ee110]
add esp, 4
test eax, eax
je 0x476208
push eax
call dword [0x4ebad0]
add esp, 4
jmp 0x476208
push edi
call dword [0x4eba9c]
add esp, 4
jmp 0x476208
cmp ebx, 0xc
je 0x47169a
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x47168b
push eax
push 0x4dc1cc
push dword [esp + 0x1c]
call fcn.00407e90
mov esi, dword [esp + 0x98]
add esp, 0xc
test esi, esi
je 0x47168b
cmp dword [0x4eba78], 0
je 0x471681
mov eax, dword [0x4ee110]
test eax, eax
je 0x47163f
push eax
call dword [0x4ebac8]
add esp, 4
push esi
call dword [0x4ebaa4]
sub dword [0x4edf18], eax
add esp, 4
dec dword [0x4edf3c]
push esi
call dword [0x4eba9c]
mov eax, dword [0x4ee110]
add esp, 4
test eax, eax
je 0x47168b
push eax
call dword [0x4ebad0]
mov eax, dword [esp + 0x18]
add esp, 4
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x476208
push esi
call dword [0x4eba9c]
add esp, 4
mov eax, dword [esp + 0x14]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x476208
mov ecx, dword [esp + 0x20]
call fcn.00471040
mov ebx, eax
mov dword [esp + 0x28], ebx
test ebx, ebx
je 0x476208
test byte [ebx + 5], 1
je 0x4716c8
mov ecx, dword [esp + 0x14]
call fcn.00477790
test eax, eax
jne 0x476208
mov al, byte [ebx + 5]
test al, 2
jne 0x4716e4
test al, 4
je 0x4716db
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x4716e8
mov edx, ebx
mov ecx, esi
call fcn.00470eb0
mov ecx, dword [esp + 0x10]
movzx eax, byte [ebx + 4]
dec eax
cmp eax, 0x2a
ja case.0x4716f6.5
jmp dword [eax*4 + 0x476240]
mov eax, dword [esi + 0xa4]
mov ebx, dword [esp + 0x1c]
bts eax, ebx
mov dword [esi + 0xa4], eax
cmp ebx, 1
je 0x471737
mov eax, dword [esi]
mov ecx, ebx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
cmp byte [eax + 9], 0
je 0x471737
mov eax, dword [esi + 0xa8]
bts eax, ebx
mov dword [esi + 0xa8], eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x471770
mov ecx, dword [esp + 0x14]
lea edx, [eax + 9]
push ecx
push 0x4e1ce0
add dword [ecx + 0x2c], 2
mov ecx, esi
call fcn.0042b360
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x47621f
lea edx, [esp + 0x78]
mov dword [esp + 0x78], 0
mov ecx, eax
call fcn.004089c0
mov ebx, dword [esp + 0x78]
test ebx, ebx
jns 0x47179c
cmp ebx, 0x80000000
jne 0x47179a
mov ebx, 0x7fffffff
jmp 0x47179c
neg ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov eax, 1
mov dword [esp + 0x14], ecx
mov edx, dword [ecx + 0x54]
mov ecx, dword [esp + 0x1c]
shl eax, cl
mov ecx, dword [esp + 0x14]
test edx, eax
jne 0x4717da
mov eax, dword [esp + 0x1c]
bts edx, eax
mov dword [ecx + 0x54], edx
cmp eax, 1
jne 0x4717da
call fcn.0045e3b0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x50]
mov edx, dword [esp + 0x1c]
bts eax, edx
mov dword [ecx + 0x50], eax
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x471804
push ebx
push 3
push edx
mov edx, 0x62
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47182f
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x62
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0xc]
mov dword [eax + 0x50], ebx
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x50]
call fcn.0041d160
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x471884
test edi, edi
je 0x47186c
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
jmp 0x47186e
xor eax, eax
cdq
mov ecx, esi
push edx
push eax
call fcn.00470f50
mov edx, dword [esp + 0x28]
add esp, 8
jmp 0x47621f
lea edx, [esp + 0x78]
mov dword [esp + 0x78], 0
call fcn.004089c0
mov eax, dword [esp + 0xc]
mov ecx, edi
mov edx, dword [esp + 0x78]
push 0
push 0
mov dword [eax + 0x60], edx
call fcn.0041d3d0
add esp, 8
cmp eax, 7
jne 0x476208
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x53], 0
jne 0x476208
cmp byte [edx + 0x54], 0
jne 0x476208
cmp dword [edx + 0xc8], 0
mov byte [edx + 0x53], 1
jle 0x4718e6
mov dword [edx + 0x128], 1
inc dword [edx + 0x130]
xor eax, eax
mov word [edx + 0x134], ax
mov eax, dword [edx + 0x10c]
test eax, eax
je 0x476208
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov dword [eax + 0xc], 7
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
mov eax, dword [esp + 0x10]
or ecx, 0xffffffff
mov ebx, dword [edi + 4]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x471990
mov edi, str.fast
mov edx, eax
sub edi, eax
nop
movzx ecx, byte [edx]
movzx eax, byte [edx + edi]
cmp ecx, eax
jne 0x471952
test ecx, ecx
je 0x47196b
inc edx
jmp 0x471940
movzx ecx, byte [ecx + 0x4e3418]
movzx eax, byte [eax + 0x4e3418]
sub ecx, eax
jne 0x471967
inc edx
jmp 0x471940
test ecx, ecx
jne 0x471972
mov ecx, 2
jmp 0x47198c
mov ecx, dword [esp + 0x10]
mov edx, 1
push 0
call fcn.00470dc0
xor ecx, ecx
add esp, 4
test al, al
setne cl
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x24]
mov edi, 0xfff3
cmp dword [eax + 4], 0
jne 0x471a38
test ecx, ecx
js 0x471a38
mov eax, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x18], edx
cmp dword [eax + 0x14], edx
jle 0x471a38
mov ebx, dword [esp + 0x2c]
xor esi, esi
mov eax, dword [eax + 0x10]
mov edi, dword [esi + eax + 4]
test edi, edi
je 0x471a1a
cmp byte [edi + 9], 0
je 0x4719e9
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x4719e9
mov ecx, edi
call fcn.0041a4e0
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 4]
mov ecx, 0xfff3
and word [eax + 0x18], cx
lea eax, [ebx*4]
mov ecx, dword [edi + 4]
or word [ecx + 0x18], ax
cmp byte [edi + 9], 0
je 0x471a1a
add dword [edi + 0xc], 0xffffffff
jne 0x471a1a
mov ecx, edi
call fcn.0041a4c0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
inc edx
add esi, 0x10
mov dword [esp + 0x18], edx
cmp edx, dword [eax + 0x14]
jl 0x4719c4
mov esi, dword [esp + 0x40]
mov edi, 0xfff3
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jne 0x471a45
xor edi, edi
push edi
push edi
jmp 0x4761fe
cmp byte [ebx + 9], 0
je 0x471a5b
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x471a5b
mov ecx, ebx
call fcn.0041a4e0
mov edx, dword [esp + 0x2c]
test edx, edx
js 0x471a78
mov eax, dword [ebx + 4]
and word [eax + 0x18], di
lea eax, [edx*4]
mov ecx, dword [ebx + 4]
or word [ecx + 0x18], ax
mov eax, dword [ebx + 4]
movzx edi, word [eax + 0x18]
shr edi, 2
and edi, 3
cmp byte [ebx + 9], 0
je 0x471a98
add dword [ebx + 0xc], 0xffffffff
jne 0x471a98
mov ecx, ebx
call fcn.0041a4c0
push 0
push edi
jmp 0x4761fe
mov ebx, dword [esp + 0x14]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x1c]
mov edx, ebx
movlpd qword [esp + 0x48], xmm0
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x54]
test edi, eax
jne 0x471adb
bts edi, ecx
mov dword [edx + 0x54], edi
cmp ecx, 1
jne 0x471adb
mov ecx, edx
call fcn.0045e3b0
mov eax, dword [esp + 0x14]
mov ebx, dword [ebx + 0x2c]
inc ebx
mov dword [eax + 0x2c], ebx
mov eax, dword [esp + 0x20]
movzx eax, byte [eax]
cmp byte [eax + 0x4e3418], 0x70
jne 0x471b43
mov ecx, dword [esi + 0x74]
lea edi, [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x471b1c
push 0
push ebx
push dword [esp + 0x24]
mov edx, 0xae
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x471be3
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [edi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xae
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], 0
jmp 0x471bd7
mov eax, dword [esp + 0x10]
test eax, eax
je 0x471b86
lea edx, [esp + 0x48]
mov ecx, eax
call fcn.004088b0
test eax, eax
jne 0x471b86
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
test eax, eax
jg 0x471b77
jl 0x471b86
test edx, edx
jb 0x471b86
test eax, eax
jl 0x471b93
jg 0x471b77
cmp edx, 0xfffffffe
jbe 0x471b93
mov edx, 0xfffffffe
mov dword [esp + 0x4c], 0
jmp 0x471b93
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x74]
lea edi, [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x471bb5
push edx
push ebx
push dword [esp + 0x24]
mov edx, 0xaf
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x471be3
lea eax, [ecx + 1]
mov dword [edi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0xaf
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
lea eax, [esi + 0x78]
cmp dword [eax], ecx
jg 0x471c05
push 0
push 1
push ebx
mov edx, 0x52
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x476208
lea eax, [ecx + 1]
mov dword [edi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x476208
test ecx, ecx
je 0x471ca6
mov ebx, str.exclusive
mov edx, ecx
sub ebx, ecx
movzx ecx, byte [edx]
movzx eax, byte [ebx + edx]
cmp ecx, eax
jne 0x471c5b
test ecx, ecx
jne 0x471c6d
mov ecx, 1
jmp 0x471ca9
movzx eax, byte [eax + 0x4e3418]
movzx ecx, byte [ecx + 0x4e3418]
sub ecx, eax
jne 0x471c70
inc edx
jmp 0x471c45
mov edx, dword [esp + 0x10]
mov ebx, str.normal
sub ebx, edx
nop dword [eax + eax]
movzx ecx, byte [edx]
movzx eax, byte [ebx + edx]
cmp ecx, eax
jne 0x471c91
test ecx, ecx
jne 0x471ca3
jmp 0x471ca9
movzx eax, byte [eax + 0x4e3418]
movzx ecx, byte [ecx + 0x4e3418]
sub ecx, eax
jne 0x471ca6
inc edx
jmp 0x471c80
or ecx, 0xffffffff
mov eax, dword [esp + 0x24]
cmp dword [eax + 4], 0
jne 0x471d0d
mov eax, dword [esp + 0xc]
cmp ecx, 0xffffffff
jne 0x471cc1
mov cl, byte [eax + 0x55]
jmp 0x471d35
mov edx, 2
cmp dword [eax + 0x14], edx
jle 0x471d0a
mov ebx, 0x20
mov eax, dword [eax + 0x10]
mov eax, dword [ebx + eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x471cf9
cmp byte [eax + 0xc], 0
jne 0x471cf9
mov edi, dword [eax + 0xe8]
test edi, edi
je 0x471cf6
cmp byte [edi + 0x2b], 2
je 0x471cf9
mov byte [eax + 4], cl
mov eax, dword [esp + 0xc]
inc edx
add ebx, 0x10
cmp edx, dword [eax + 0x14]
jl 0x471cd0
mov edi, dword [esp + 0x6c]
mov byte [eax + 0x55], cl
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x471d32
cmp byte [eax + 0xc], 0
jne 0x471d32
mov edx, dword [eax + 0xe8]
test edx, edx
je 0x471d2f
cmp byte [edx + 0x2b], 2
je 0x471d32
mov byte [eax + 4], cl
mov cl, byte [eax + 4]
cmp cl, 1
mov edx, str.exclusive
mov eax, str.normal
mov ecx, esi
cmove eax, edx
mov edx, 1
push eax
call fcn.0042aa50
add esp, 4
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x471d77
push 0
push 1
push 1
mov edx, 0x52
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x476208
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 1
jmp 0x471c1b
test ecx, ecx
je 0x471e43
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x471da2
sub ecx, edx
and ecx, 0x3fffffff
xor eax, eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x18], eax
cmp eax, 6
je 0x471e43
mov edi, dword [eax*4 + 0x4e2390]
test edi, edi
je 0x471e43
mov ebx, dword [esp + 0x10]
mov edx, ecx
test ecx, ecx
je 0x471e01
nop dword [eax]
mov al, byte [ebx]
dec edx
test al, al
je 0x471e02
movzx ecx, byte [edi]
movzx eax, al
mov al, byte [eax + 0x4e3418]
cmp al, byte [ecx + 0x4e3418]
jne 0x471e02
inc ebx
inc edi
test edx, edx
jg 0x471de0
dec edx
test edx, edx
js 0x471e29
movzx eax, byte [edi]
movzx ecx, byte [eax + 0x4e3418]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0x4e3418]
sub eax, ecx
je 0x471e29
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
inc eax
jmp 0x471db7
mov ebx, dword [esp + 0x18]
cmp ebx, 2
jne 0x471e61
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x471e66
or ebx, 0xffffffff
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 4], 0
jne 0x471e6a
mov dword [esp + 0x1c], 0
mov dword [ecx + 4], 1
jmp 0x471e6a
cmp ebx, 0xffffffff
je 0x471e46
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x471d55
mov edx, edi
shl edx, 4
mov dword [esp + 0x78], edx
nop dword [eax]
nop word [eax + eax]
mov eax, dword [eax + 0x10]
cmp dword [edx + eax + 4], 0
je 0x471f33
cmp edi, dword [esp + 0x1c]
je 0x471eae
cmp dword [ecx + 4], 0
jne 0x471f33
mov eax, dword [esi + 0xa4]
bts eax, edi
mov dword [esi + 0xa4], eax
cmp edi, 1
je 0x471ee0
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx + 4]
cmp byte [eax + 9], 0
je 0x471ee0
mov eax, dword [esi + 0xa8]
bts eax, edi
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x471f04
push ebx
push 1
push edi
mov edx, 7
mov ecx, esi
call fcn.0042a9a0
mov edx, dword [esp + 0x84]
add esp, 0xc
jmp 0x471f33
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x24]
sub edx, 0x10
sub edi, 1
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], edx
jns 0x471e90
jmp 0x471d55
mov eax, dword [edi + 4]
or ecx, 0xffffffff
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
mov eax, dword [eax + 4]
mov edi, dword [eax]
mov eax, 0xfffffffe
mov dword [esp + 0x48], eax
test ebx, ebx
je 0x471f9e
lea edx, [esp + 0x48]
mov ecx, ebx
call fcn.004088b0
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xffffffff
jg 0x471f96
jl 0x471f8f
mov eax, dword [esp + 0x48]
cmp eax, 0xffffffff
jae 0x471f9a
or eax, 0xffffffff
or ecx, eax
jmp 0x471f9a
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x10]
cmp ecx, 0xffffffff
jl 0x471fc6
jg 0x471faa
cmp eax, 0xffffffff
jb 0x471fc6
mov edx, dword [edi + 0xe8]
mov dword [edi + 0xb0], eax
mov dword [edi + 0xb4], ecx
test edx, edx
je 0x471fc6
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
push dword [edi + 0xb4]
mov ecx, esi
push dword [edi + 0xb0]
call fcn.00470f50
add esp, 8
jmp 0x47620c
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x472036
cmp byte [edi + 9], cl
je 0x471ffc
inc dword [edi + 0xc]
cmp byte [edi + 0xa], cl
jne 0x471ffc
mov ecx, edi
call fcn.0041a4e0
mov eax, dword [edi + 4]
xor ebx, ebx
cmp byte [eax + 0x11], bl
je 0x47200d
cmp byte [eax + 0x12], bl
setne bl
inc ebx
cmp byte [edi + 9], 0
je 0x472020
add dword [edi + 0xc], 0xffffffff
jne 0x472020
mov ecx, edi
call fcn.0041a4c0
push 0
push ebx
mov ecx, esi
call fcn.00470f50
mov edx, dword [esp + 0x28]
add esp, 8
jmp 0x47621f
mov ebx, str.none
mov edx, ecx
sub ebx, ecx
nop
movzx ecx, byte [edx]
movzx eax, byte [ebx + edx]
cmp ecx, eax
jne 0x472056
test ecx, ecx
jne 0x472068
xor ebx, ebx
jmp 0x472110
movzx eax, byte [eax + 0x4e3418]
movzx ecx, byte [ecx + 0x4e3418]
sub ecx, eax
jne 0x47206b
inc edx
jmp 0x472040
mov edx, dword [esp + 0x10]
mov ecx, str.full
sub ecx, edx
mov dword [esp + 0x7c], ecx
nop word [eax + eax]
movzx eax, byte [edx]
movzx ebx, byte [edx + ecx]
cmp eax, ebx
jne 0x472094
test eax, eax
jne 0x4720aa
lea ebx, [eax + 1]
jmp 0x472110
movzx ecx, byte [eax + 0x4e3418]
movzx eax, byte [ebx + 0x4e3418]
sub ecx, eax
jne 0x4720ad
mov ecx, dword [esp + 0x7c]
inc edx
jmp 0x472080
mov edx, dword [esp + 0x10]
mov ebx, str.incremental
sub ebx, edx
nop dword [eax + eax]
movzx ecx, byte [edx]
movzx eax, byte [ebx + edx]
cmp ecx, eax
jne 0x4720d4
test ecx, ecx
jne 0x4720e6
lea ebx, [ecx + 2]
jmp 0x472110
movzx eax, byte [eax + 0x4e3418]
movzx ecx, byte [ecx + 0x4e3418]
sub ecx, eax
jne 0x4720e9
inc edx
jmp 0x4720c0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x78]
mov dword [esp + 0x78], 0
call fcn.004089c0
mov eax, dword [esp + 0x78]
xor edx, edx
cmp eax, 2
movzx ecx, al
cmova ecx, edx
movzx ebx, cl
mov eax, dword [esp + 0xc]
mov edx, ebx
mov ecx, edi
mov byte [eax + 0x56], bl
call fcn.0041d510
test eax, eax
jne 0x476208
cmp ebx, 1
je 0x472136
cmp ebx, 2
jne 0x476208
mov edi, dword [esi + 0x74]
mov edx, 5
push ecx
push 0x4e2e34
mov ecx, esi
call fcn.0042b360
mov edx, dword [esp + 0x24]
lea ecx, [edi + 4]
add esp, 8
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
mov dword [eax + 0x5c], ecx
mov eax, dword [esi + 0xa4]
bts eax, edx
mov dword [esi + 0xa4], eax
cmp edx, 1
je 0x476208
mov eax, dword [esi]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
cmp byte [eax + 9], 0
je 0x476208
mov eax, dword [esi + 0xa8]
mov ecx, dword [esp + 0xc]
bts eax, edx
mov edx, dword [esp + 0x20]
mov dword [esi + 0xa8], eax
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
test ecx, ecx
je 0x4721d4
lea edx, [esp + 0x7c]
call fcn.004089c0
test eax, eax
je 0x4721d4
mov edi, dword [esp + 0x7c]
test edi, edi
jg 0x4721d9
mov edi, 0x7fffffff
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov edx, dword [ebx + 0x54]
test edx, eax
jne 0x47220d
bts edx, ecx
mov dword [ebx + 0x54], edx
cmp ecx, 1
jne 0x47220d
mov ecx, ebx
call fcn.0045e3b0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x50]
bts eax, ecx
mov dword [ebx + 0x50], eax
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x472234
push 0
push 1
push edi
mov edx, 0x46
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x472263
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x74]
cmp dword [esi + 0x78], edi
jg 0x472286
push 0
push 0
push dword [esp + 0x24]
mov edx, 0x3d
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edi, eax
jmp 0x4722b9
mov edx, dword [esp + 0x1c]
lea eax, [edi + 1]
mov dword [esi + 0x74], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x3d
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4722d8
push 0
push 0
push 1
mov edx, 0x52
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47230b
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x47232a
push 0
push 0xffffffffffffffff
push 1
mov edx, 0x54
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47235d
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x54
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x47237b
push 0
push edi
push 1
mov edx, 0x31
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x4723aa
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x31
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
test edi, edi
jns 0x4723b4
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x4723c9
mov eax, 0x4edf68
mov dword [eax + 8], edx
jmp 0x476208
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x476208
test ecx, ecx
jne 0x4723ea
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x47186e
lea edx, [esp + 0x78]
mov dword [esp + 0x78], 0
call fcn.004089c0
mov ecx, dword [edi + 0xc]
mov eax, dword [esp + 0x78]
mov dword [ecx + 0x50], eax
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x50]
call fcn.0041d160
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
test ecx, ecx
jne 0x47245d
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x20]
and eax, 0x20
or eax, ecx
je 0x472445
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.0041d200
cdq
mov ecx, esi
push edx
push eax
call fcn.00470f50
mov edx, dword [esp + 0x28]
add esp, 8
mov ecx, ebx
jmp 0x476223
lea edx, [esp + 0x78]
mov dword [esp + 0x78], 1
call fcn.004089c0
mov esi, dword [esp + 0x78]
test eax, eax
je 0x472480
mov ecx, dword [edi + 4]
mov edx, esi
call fcn.0041d200
mov ecx, dword [esp + 0x10]
test esi, esi
mov edx, 1
setne al
movzx eax, al
push eax
call fcn.00470dc0
mov edx, dword [esp + 0x10]
add esp, 4
mov ebx, dword [esp + 0xc]
test al, al
mov eax, ebx
mov ecx, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
je 0x4724d2
or ecx, 0x20
mov dword [eax + 0x20], ecx
mov ecx, ebx
mov dword [eax + 0x24], edx
call fcn.00470ff0
mov edx, dword [esp + 0x20]
mov ecx, ebx
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
and ecx, 0xffffffdf
mov dword [eax + 0x20], ecx
mov ecx, ebx
mov dword [eax + 0x24], edx
call fcn.00470ff0
mov edx, dword [esp + 0x20]
mov ecx, ebx
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
test ecx, ecx
je 0x472604
lea edx, [esp + 0x80]
call fcn.004088b0
cmp dword [esp + 0x84], 0
jg 0x472539
jl 0x472520
cmp dword [esp + 0x80], 0
jae 0x472539
mov eax, dword [0x4ebb20]
mov ecx, dword [0x4ebb24]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp dword [ecx + 4], 0
jne 0x47255f
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov dword [edx + 0x34], ecx
mov ecx, dword [esp + 0x24]
mov dword [edx + 0x30], eax
mov ebx, dword [edx + 0x14]
sub ebx, 1
js 0x472604
mov esi, ebx
shl esi, 4
mov eax, dword [edx + 0x10]
mov edi, dword [eax + esi + 4]
test edi, edi
je 0x4725f0
cmp ebx, dword [esp + 0x1c]
je 0x472587
cmp dword [ecx + 4], 0
jne 0x4725f0
cmp byte [edi + 9], 0
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x70], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x6c], ecx
je 0x4725c2
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x4725c2
mov ecx, edi
call fcn.0041a4e0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx]
mov dword [ecx + 0x88], eax
mov eax, dword [esp + 0x70]
mov dword [ecx + 0x8c], eax
call fcn.00413960
cmp byte [edi + 9], 0
je 0x4725ec
add dword [edi + 0xc], 0xffffffff
jne 0x4725ec
mov ecx, edi
call fcn.0041a4c0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
sub esi, 0x10
sub ebx, 1
jns 0x472570
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov ebx, 1
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x84], 0xffffffff
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x472638
push eax
call dword [0x4ebac8]
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x472652
mov edx, eax
call fcn.004564b0
mov edi, eax
test edi, edi
jns 0x472654
jmp 0x4726d2
xor edi, edi
mov eax, dword [esp + 0xc]
add edi, edi
mov eax, dword [eax + 0x10]
mov edi, dword [eax + edi*8 + 4]
test edi, edi
je 0x4726d2
cmp byte [edi + 9], 0
je 0x47267b
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x47267b
mov ecx, edi
call fcn.0041a4e0
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x1c4]
mov dword [esp + 0x7c], ecx
mov eax, dword [eax + 0x40]
mov ecx, dword [eax]
test ecx, ecx
jne 0x47269c
lea ebx, [ecx + 0xc]
jmp 0x4726b1
lea edx, [esp + 0x80]
push edx
push 0x12
push eax
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
mov ebx, eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x7c]
mov dword [ecx + 0x1c4], eax
cmp byte [edi + 9], 0
je 0x4726d2
add dword [edi + 0xc], 0xffffffff
jne 0x4726d2
mov ecx, edi
call fcn.0041a4c0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4726e7
push eax
call dword [0x4ebad0]
add esp, 4
test ebx, ebx
jne 0x4726fe
push dword [esp + 0x84]
push dword [esp + 0x84]
jmp 0x4761fe
cmp ebx, 0xc
je 0x476208
mov eax, dword [esp + 0x14]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x476208
test ecx, ecx
jne 0x472727
mov ebx, dword [esp + 0xc]
movzx eax, byte [ebx + 0x52]
jmp 0x472445
mov cl, byte [ecx]
mov al, cl
sub al, 0x30
cmp al, 2
ja 0x472739
movsx ebx, cl
sub ebx, 0x30
jmp 0x4727ab
mov ebx, dword [esp + 0x10]
mov esi, str.file
mov edx, ebx
movzx eax, byte [esi]
movzx ecx, cl
cmp ecx, eax
jne 0x472757
test ecx, ecx
jne 0x472769
lea ebx, [ecx + 1]
jmp 0x4727ab
movzx eax, byte [eax + 0x4e3418]
movzx ecx, byte [ecx + 0x4e3418]
sub ecx, eax
jne 0x472770
mov cl, byte [edx + 1]
inc edx
inc esi
jmp 0x472744
mov esi, str.memory
mov edx, ebx
sub esi, ebx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x472794
test ecx, ecx
jne 0x4727a6
lea ebx, [ecx + 2]
jmp 0x4727ab
movzx eax, byte [eax + 0x4e3418]
movzx ecx, byte [ecx + 0x4e3418]
sub ecx, eax
jne 0x4727a9
inc edx
jmp 0x472780
xor ebx, ebx
mov edx, dword [esp + 0x14]
mov esi, dword [edx]
movzx eax, byte [esi + 0x52]
cmp eax, ebx
je 0x476208
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x4727e9
cmp byte [esi + 0x51], 0
je 0x472802
cmp byte [ecx + 8], 0
jne 0x472802
call fcn.0041cf50
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.00455e40
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov byte [esi + 0x52], bl
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edx
jmp 0x472af5
test ecx, ecx
jne 0x472890
mov eax, dword [0x4ede4c]
test eax, eax
je 0x476208
push eax
mov edx, 1
mov ecx, esi
call fcn.0042aa50
mov ecx, dword [esi + 0x74]
add esp, 4
cmp dword [esi + 0x78], ecx
jg 0x472854
push 0
push 1
push 1
mov edx, 0x52
mov ecx, esi
call fcn.0042a9a0
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x47621f
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x47621f
cmp byte [ecx], 0
mov ebx, dword [esp + 0xc]
je 0x4728db
mov eax, dword [ebx]
lea edx, [esp + 0x7c]
push edx
push 1
push ecx
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x4728b6
cmp dword [esp + 0x7c], eax
jne 0x4728db
push str.not_a_writable_directory
push dword [esp + 0x18]
call fcn.00407e90
mov edx, dword [esp + 0x28]
add esp, 8
mov ecx, ebx
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
cmp byte [ebx + 0x52], 1
ja 0x472923
mov edx, dword [esp + 0x14]
mov esi, dword [edx]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x472923
cmp byte [esi + 0x51], 0
je 0x472915
cmp byte [ecx + 8], 0
jne 0x472915
call fcn.0041cf50
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.00455e40
jmp 0x472923
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edx
call fcn.00407e90
add esp, 8
mov esi, dword [0x4ede4c]
test esi, esi
je 0x472985
cmp dword [0x4eba78], 0
je 0x47297b
mov eax, dword [0x4ee110]
test eax, eax
je 0x472949
push eax
call dword [0x4ebac8]
add esp, 4
push esi
call dword [0x4ebaa4]
sub dword [0x4edf18], eax
add esp, 4
dec dword [0x4edf3c]
push esi
call dword [0x4eba9c]
mov eax, dword [0x4ee110]
add esp, 4
test eax, eax
je 0x472985
push eax
call dword [0x4ebad0]
jmp 0x472982
push esi
call dword [0x4eba9c]
add esp, 4
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
je 0x4729b5
push eax
push 0x4dc1cc
call fcn.00407040
mov edx, dword [esp + 0x28]
add esp, 8
mov ecx, ebx
mov dword [0x4ede4c], eax
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
mov edx, dword [esp + 0x20]
mov ecx, ebx
mov dword [0x4ede4c], 0
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
test ecx, ecx
jne 0x4729e1
mov eax, dword [0x4ede48]
jmp 0x472816
cmp byte [ecx], 0
mov ebx, dword [esp + 0xc]
je 0x472a0f
mov eax, dword [ebx]
lea edx, [esp + 0x7c]
push edx
push 1
push ecx
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x4728b6
cmp dword [esp + 0x7c], eax
je 0x4728b6
mov esi, dword [0x4ede48]
test esi, esi
je 0x472a71
cmp dword [0x4eba78], 0
je 0x472a67
mov eax, dword [0x4ee110]
test eax, eax
je 0x472a35
push eax
call dword [0x4ebac8]
add esp, 4
push esi
call dword [0x4ebaa4]
sub dword [0x4edf18], eax
add esp, 4
dec dword [0x4edf3c]
push esi
call dword [0x4eba9c]
mov eax, dword [0x4ee110]
add esp, 4
test eax, eax
je 0x472a71
push eax
call dword [0x4ebad0]
jmp 0x472a6e
push esi
call dword [0x4eba9c]
add esp, 4
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
je 0x472aa1
push eax
push 0x4dc1cc
call fcn.00407040
mov edx, dword [esp + 0x28]
add esp, 8
mov ecx, ebx
mov dword [0x4ede48], eax
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
mov edx, dword [esp + 0x20]
mov ecx, ebx
mov dword [0x4ede48], 0
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
test ecx, ecx
jne 0x472ae2
movzx eax, byte [edi + 8]
cdq
sub eax, 1
sbb edx, ecx
mov ecx, esi
push edx
push eax
call fcn.00470f50
mov edx, dword [esp + 0x28]
add esp, 8
jmp 0x47621f
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x51], 0
jne 0x472b13
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [esp + 0x18]
call fcn.00407e90
mov ecx, dword [esp + 0x14]
add esp, 8
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
cmp dword [esp + 0x1c], 1
je 0x476208
push 1
xor edx, edx
call fcn.00470dc0
inc eax
add esp, 4
and eax, 7
mov ecx, 1
mov byte [edi + 9], cl
cmove eax, ecx
mov ecx, dword [esp + 0xc]
mov byte [edi + 8], al
call fcn.00470ff0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
test ecx, ecx
jne 0x472bad
mov edx, ebx
mov ecx, esi
call fcn.00470eb0
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x24]
and ecx, dword [ebx + 8]
and eax, dword [ebx + 0xc]
or ecx, eax
je 0x472b85
mov eax, 1
xor ecx, ecx
jmp 0x472b96
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
push ecx
push eax
mov ecx, esi
call fcn.00470f50
mov edx, dword [esp + 0x28]
add esp, 8
mov ecx, edi
jmp 0x476223
mov eax, dword [esp + 0xc]
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
cmp byte [eax + 0x51], 0
jne 0x472bc3
and edi, 0xffffbfff
push 0
mov edx, 1
call fcn.00470dc0
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x7c], ecx
test al, al
je 0x472bf6
mov eax, dword [esp + 0xc]
or edx, edi
or ecx, ebx
mov ebx, eax
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ecx
jmp 0x472c28
mov ecx, edi
mov eax, ebx
not ecx
not eax
and eax, dword [esp + 0x7c]
and ecx, edx
mov edx, dword [esp + 0xc]
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
cmp edi, 0x80000
jne 0x472c64
test ebx, ebx
jne 0x472c64
mov dword [edx + 0x208], ebx
mov dword [edx + 0x20c], ebx
mov ebx, edx
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x472cbb
push 0
push 0
push 0
mov edx, 0xa4
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov ecx, ebx
call fcn.00470ff0
mov edx, dword [esp + 0x20]
mov ecx, ebx
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
and edi, 1
or edi, 0
je 0x472c26
mov edx, dword [esp + 0x10]
mov edi, str.reset
sub edi, edx
movzx ecx, byte [edx]
movzx eax, byte [edx + edi]
cmp ecx, eax
jne 0x472c89
test ecx, ecx
je 0x472ca2
inc edx
jmp 0x472c77
movzx ecx, byte [ecx + 0x4e3418]
movzx eax, byte [eax + 0x4e3418]
sub ecx, eax
jne 0x472c9e
inc edx
jmp 0x472c77
test ecx, ecx
jne 0x472cb2
mov ebx, dword [esp + 0xc]
mov ecx, ebx
call fcn.00455e40
jmp 0x472c28
mov ebx, dword [esp + 0xc]
jmp 0x472c28
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xa4
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, ebx
call fcn.00470ff0
mov edx, dword [esp + 0x20]
mov ecx, ebx
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
test ecx, ecx
je 0x476208
mov edi, dword [esp + 0x34]
mov edx, edi
mov ecx, dword [esp + 0x14]
call fcn.0045e490
mov ecx, dword [esp + 0x14]
mov edx, 2
push edi
push dword [esp + 0x14]
call fcn.00455a30
mov edi, eax
add esp, 8
mov dword [esp + 0x64], edi
test edi, edi
je 0x476208
mov ecx, dword [edi + 8]
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x472d6b
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x472d67
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x472d57
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x14]
mov edx, edi
mov ecx, eax
mov dword [eax + 0x2c], 7
call fcn.0045a100
mov ecx, dword [edi + 4]
xor edx, edx
movzx eax, word [edi + 0x22]
xor edi, edi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ecx
cmp di, ax
jge 0x476208
mov dword [esp + 0x78], eax
nop
movzx eax, word [ecx + 0xe]
xor edi, edi
test al, 0x62
je 0x472dd6
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
jne 0x472dbb
inc dword [esp + 0x44]
jmp 0x472f30
movzx eax, word [ecx + 0xe]
test al, 0x20
je 0x472dca
mov edi, 2
jmp 0x472dd6
movzx edi, al
and edi, 0x40
or edi, 0x20
shr edi, 5
test al, 1
jne 0x472dde
xor edx, edx
jmp 0x472e1b
cmp dword [esp + 0x18], 0
mov edx, 1
je 0x472e1b
mov eax, dword [esp + 0x78]
cwde
mov dword [esp + 0x7c], eax
cmp eax, edx
jl 0x472e1b
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x7c]
mov ecx, dword [eax + 4]
movsx eax, word [ecx]
cmp eax, dword [esp + 0x5c]
je 0x472e13
inc edx
add ecx, 2
cmp edx, esi
jle 0x472e02
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
movzx eax, word [ecx + 0xc]
mov dword [esp + 0x7c], eax
test ax, ax
jne 0x472e2c
xor eax, eax
jmp 0x472e71
mov eax, dword [esp + 0x64]
cmp byte [eax + 0x2b], 0
je 0x472e3a
xor eax, eax
jmp 0x472e71
mov eax, dword [eax + 0x34]
test eax, eax
je 0x472e71
mov ebx, dword [esp + 0x7c]
movzx ebx, bx
cmp dword [eax], ebx
mov ebx, dword [esp + 0x28]
jge 0x472e54
xor eax, eax
jmp 0x472e71
movzx esi, word [ecx + 0xc]
mov ecx, dword [esp + 0x64]
movzx eax, si
mov esi, dword [ecx + 0x34]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*4 - 0xc]
mov esi, dword [esp + 0x40]
cmp edi, 2
jae 0x472e83
test eax, eax
je 0x472e83
mov eax, dword [eax + 8]
mov dword [esp + 0x78], eax
jmp 0x472e8b
mov dword [esp + 0x78], 0
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x38], str.issisii
jne 0x472ea3
mov dword [esp + 0x38], str.issisi
test byte [ecx + 0xe], 4
je 0x472ed4
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x6c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x7c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x472eb8
mov eax, dword [esp + 0x6c]
sub ecx, dword [esp + 0x7c]
inc eax
add eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
jmp 0x472ef4
mov eax, dword [ecx + 4]
shr eax, 4
and eax, 0xf
je 0x472eec
mov eax, dword [eax*4 + 0x4ec8f4]
mov dword [esp + 0x30], eax
jmp 0x472ef4
mov dword [esp + 0x30], 0x4db4e0
test byte [ecx + 4], 0xf
mov eax, 0
push edi
push edx
push dword [esp + 0x80]
setne al
push eax
push dword [esp + 0x40]
mov eax, dword [esp + 0x70]
push dword [ecx]
sub eax, dword [esp + 0x5c]
push eax
push dword [esp + 0x54]
push 1
push esi
call fcn.0042ab00
mov ecx, dword [esp + 0x54]
add esp, 0x28
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
inc edx
add ecx, 0x10
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], ecx
movzx eax, word [eax + 0x22]
mov edi, eax
cwde
mov dword [esp + 0x78], edi
cmp edx, eax
jl 0x472da0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
mov eax, dword [esp + 0x14]
mov ecx, eax
mov ebx, dword [esp + 0x34]
mov edx, ebx
mov dword [eax + 0x2c], 6
call fcn.0045e490
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], 0
cmp dword [eax + 0x14], 0
jle 0x476208
xor ecx, ecx
mov dword [esp + 0x28], ecx
nop dword [eax]
test ebx, ebx
je 0x472fed
mov eax, dword [eax + 0x10]
mov edi, dword [ecx + eax]
test edi, edi
je 0x473314
mov edx, ebx
sub edi, ebx
movzx ecx, byte [edx]
movzx eax, byte [edi + edx]
cmp ecx, eax
jne 0x472fc8
test ecx, ecx
je 0x472fe5
inc edx
jmp 0x472fb6
movzx eax, byte [eax + 0x4e3418]
movzx ecx, byte [ecx + 0x4e3418]
sub ecx, eax
jne 0x472fdd
inc edx
jmp 0x472fb6
test ecx, ecx
jne 0x473338
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov edx, dword [ecx + eax + 0xc]
add edx, 8
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x473024
nop
mov eax, dword [edx + 8]
dec ebx
mov dword [esp + 0x38], ebx
test eax, eax
je 0x473024
nop dword [eax]
mov ecx, dword [eax + 8]
cmp word [ecx + 0x22], 0
je 0x47307a
mov eax, dword [eax]
test eax, eax
jne 0x473010
mov ecx, dword [esp + 0x28]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
test edx, edx
je 0x473310
mov eax, dword [esp + 0x10]
nop word [eax + eax]
mov ebx, dword [edx + 8]
test eax, eax
je 0x47319c
mov edx, dword [ebx]
test edx, edx
je 0x4732fa
mov edi, eax
sub edi, edx
nop dword [eax]
movzx ecx, byte [edx + edi]
movzx eax, byte [edx]
cmp ecx, eax
jne 0x47317c
test ecx, ecx
je 0x47319c
inc edx
jmp 0x473060
push dword [ecx]
push str.SELECTFROM__w_
push dword [esp + 0x14]
call fcn.00406f50
add esp, 0xc
mov dword [esp + 0x7c], eax
test eax, eax
je 0x47315d
push 0
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], 0
push ecx
mov ecx, dword [esp + 0x14]
mov edx, eax
push 0
push 0
push 0xffffffffffffffff
call fcn.00477f00
mov edi, dword [esp + 0x8c]
add esp, 0x14
test edi, edi
je 0x473150
mov ebx, dword [edi]
test ebx, ebx
jne 0x4730fd
push str.API_called_with_finalized_prepared_statement
push 0x15
call fcn.004072e0
push 0x4e1734
push 0x14a42
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.004072e0
add esp, 0x1c
jmp 0x47314c
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x47310e
push eax
call dword [0x4ebac8]
add esp, 4
cmp dword [edi + 0x94], 0
jl 0x47312b
jg 0x473122
cmp dword [edi + 0x90], 0
jbe 0x47312b
mov edx, edi
mov ecx, ebx
call fcn.0042fe90
mov ecx, edi
call fcn.0042dc60
cmp byte [ebx + 0x53], 0
jne 0x47313c
test eax, eax
je 0x473145
mov edx, eax
mov ecx, ebx
call fcn.00404df0
mov ecx, ebx
call fcn.004afd70
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0xc]
call fcn.00404680
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
mov edx, dword [ecx + eax + 0xc]
add edx, 8
test ebx, ebx
jne 0x473000
jmp 0x473024
movzx ecx, byte [ecx + 0x4e3418]
movzx eax, byte [eax + 0x4e3418]
sub ecx, eax
jne 0x473194
inc edx
jmp 0x473060
test ecx, ecx
jne 0x4732f6
mov al, byte [ebx + 0x2b]
cmp al, 2
jne 0x4731ad
mov dword [esp + 0x18], str.view
jmp 0x4731d3
cmp al, 1
jne 0x4731bb
mov dword [esp + 0x18], str.virtual
jmp 0x4731d3
test dword [ebx + 0x1c], 0x1000
mov eax, str.shadow
mov ecx, str.table
cmove eax, ecx
mov dword [esp + 0x18], eax
mov ebx, dword [ebx]
mov edx, 7
mov dword [esp + 0x78], ebx
test ebx, ebx
je 0x4732b0
mov edi, ebx
mov ebx, str.sqlite_
nop dword [eax]
mov al, byte [edi]
dec edx
test al, al
je 0x473212
movzx ecx, byte [ebx]
movzx eax, al
mov al, byte [eax + 0x4e3418]
cmp al, byte [ecx + 0x4e3418]
jne 0x473212
inc edi
inc ebx
test edx, edx
jg 0x4731f0
dec edx
test edx, edx
js 0x473232
movzx eax, byte [ebx]
movzx ecx, byte [eax + 0x4e3418]
movzx eax, byte [edi]
movzx eax, byte [eax + 0x4e3418]
sub eax, ecx
jne 0x4732b0
mov ebx, dword [esp + 0x78]
mov ecx, 0x4dccc7
lea edx, [ebx + 7]
sub ecx, edx
mov dword [esp + 0x7c], ecx
movzx eax, byte [edx]
movzx edi, byte [ecx + edx]
cmp eax, edi
jne 0x47325a
test eax, eax
jne 0x473270
mov edx, str.sqlite_schema
jmp 0x4732b4
movzx ecx, byte [eax + 0x4e3418]
movzx eax, byte [edi + 0x4e3418]
sub ecx, eax
jne 0x473273
mov ecx, dword [esp + 0x7c]
inc edx
jmp 0x473244
mov ecx, str.sqlite_temp_master
lea edx, [ebx + 7]
sub ecx, ebx
mov dword [esp + 0x7c], ecx
movzx eax, byte [edx]
movzx edi, byte [edx + ecx]
cmp eax, edi
jne 0x473297
test eax, eax
jne 0x4732ad
mov edx, str.sqlite_temp_schema
jmp 0x4732b4
movzx ecx, byte [eax + 0x4e3418]
movzx eax, byte [edi + 0x4e3418]
sub ecx, eax
jne 0x4732b0
mov ecx, dword [esp + 0x7c]
inc edx
jmp 0x473281
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x30]
mov edi, dword [ecx + 8]
mov ecx, dword [edi + 0x1c]
mov eax, ecx
shr eax, 0x10
and eax, 1
shr ecx, 7
push eax
movsx eax, word [edi + 0x22]
and ecx, 1
push ecx
mov ecx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
push dword [esp + 0x24]
push edx
mov eax, dword [eax + 0x10]
push dword [ecx + eax]
push str.sssiii
push 1
push esi
call fcn.0042ab00
add esp, 0x24
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
mov edx, dword [edx]
mov dword [esp + 0x30], edx
test edx, edx
jne 0x473040
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0xc]
add ecx, 0x10
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], eax
cmp eax, dword [edx + 0x14]
mov eax, edx
jl 0x472fa0
jmp 0x476208
mov ecx, dword [esp + 0x28]
jmp 0x473314
test ecx, ecx
je 0x476208
push dword [esp + 0x34]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.00455bf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x4733aa
push dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
lea edx, [eax + 2]
push dword [esp + 0x14]
call fcn.00455a30
add esp, 8
test eax, eax
je 0x476208
test byte [eax + 0x1c], 0x80
je 0x476208
mov edi, dword [eax + 8]
test edi, edi
je 0x476208
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x4733a2
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x473392
test edi, edi
je 0x476208
mov edx, dword [edi + 0x18]
mov ecx, 0xffff8000
test edx, edx
je 0x4733ce
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x4733ce
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x4733c6
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov ebx, dword [esp + 0x14]
je 0x4733e5
movzx eax, word [edi + 0x34]
mov edx, 6
jmp 0x4733ee
movzx eax, word [edi + 0x32]
mov edx, 3
mov dword [esp + 0x18], eax
mov dword [ebx + 0x2c], edx
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x7c], eax
mov eax, dword [edx + 0x74]
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov ebx, dword [edx + 0x54]
test ebx, eax
jne 0x473428
bts ebx, ecx
mov dword [edx + 0x54], ebx
cmp ecx, 1
jne 0x473428
mov ecx, edx
call fcn.0045e3b0
xor ebx, ebx
cmp word [esp + 0x18], bx
je 0x476208
mov eax, dword [edi + 4]
movzx eax, word [eax + ebx*2]
movsx edx, ax
test ax, ax
jns 0x473448
xor eax, eax
jmp 0x473456
mov eax, dword [esp + 0x7c]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
push eax
push edx
push ebx
push str.iisX
push 1
push esi
call fcn.0042ab00
mov ecx, dword [esp + 0x40]
add esp, 0x18
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x47349e
movzx eax, word [edi + 0x32]
cmp ebx, eax
sbb eax, eax
neg eax
push eax
mov eax, dword [edi + 0x20]
push dword [eax + ebx*4]
mov eax, dword [edi + 0x1c]
movzx eax, byte [eax + ebx]
push eax
push str.isiX
push 4
push esi
call fcn.0042ab00
add esp, 0x18
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x74]
mov edx, dword [eax + 0x2c]
cmp dword [esi + 0x78], ecx
jg 0x4734c3
push 0
push edx
push 1
mov edx, 0x52
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x4734f6
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x18]
inc ebx
movzx eax, cx
cmp ebx, eax
jl 0x473435
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
test ecx, ecx
je 0x476208
push dword [esp + 0x34]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.00455650
mov edi, eax
add esp, 4
test edi, edi
je 0x476208
mov edx, dword [edi + 0x3c]
mov ecx, 0xffff8000
test edx, edx
je 0x473568
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x473568
nop dword [eax]
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x473560
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x74]
test eax, eax
mov dword [ebx + 0x2c], 5
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov edx, dword [ebx + 0x54]
test edx, eax
jne 0x47359b
bts edx, ecx
mov dword [ebx + 0x54], edx
cmp ecx, 1
jne 0x47359b
mov ecx, ebx
call fcn.0045e3b0
mov edi, dword [edi + 8]
xor ebx, ebx
test edi, edi
je 0x476208
mov dword [esp + 0x48], 0x4dfc20
mov dword [esp + 0x4c], 0x4dfc24
mov dword [esp + 0x50], 0x4df570
xor eax, eax
cmp dword [edi + 0x24], eax
setne al
push eax
mov eax, dword [edi + 0x38]
and eax, 3
push dword [esp + eax*4 + 0x4c]
xor eax, eax
cmp byte [edi + 0x36], al
setne al
push eax
push dword [edi]
push ebx
push str.isisi
push 1
push esi
call fcn.0042ab00
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x4735c0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
mov eax, dword [esp + 0x14]
xor edi, edi
mov edx, dword [esp + 0xc]
mov dword [eax + 0x2c], 3
cmp dword [edx + 0x14], edi
jle 0x476208
xor ebx, ebx
nop dword [eax]
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x47366c
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xf], 0
je 0x47364d
mov eax, 0x4e1d20
jmp 0x473653
mov eax, dword [eax + 0xb8]
push eax
push dword [ecx + ebx]
push edi
push 0x4dfc30
push 1
push esi
call fcn.0042ab00
mov edx, dword [esp + 0x24]
add esp, 0x18
inc edi
add ebx, 0x10
cmp edi, dword [edx + 0x14]
jl 0x473630
jmp 0x476208
mov eax, dword [esp + 0x14]
xor ebx, ebx
mov edx, dword [esp + 0xc]
mov dword [eax + 0x2c], 2
mov edi, dword [edx + 0x1b4]
test edi, edi
je 0x476208
nop dword [eax]
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x4dfc34
push 1
push esi
call fcn.0042ab00
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x4736a0
jmp 0x476208
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x18]
mov eax, dword [esp + 0x14]
shr ebx, 5
and ebx, 1
mov dword [eax + 0x2c], 6
mov eax, 0x4edf98
mov dword [esp + 0x78], eax
mov edi, dword [eax]
test edi, edi
je 0x47370a
nop dword [eax]
push ebx
push 1
mov edx, edi
mov ecx, esi
call fcn.004710f0
mov edi, dword [edi + 0x24]
add esp, 8
test edi, edi
jne 0x4736f0
mov eax, dword [esp + 0x78]
add eax, 4
mov dword [esp + 0x78], eax
cmp eax, 0x4edff4
jl 0x4736e3
mov edx, dword [esp + 0xc]
mov edi, dword [edx + 0x1a4]
test edi, edi
je 0x476208
nop word [eax + eax]
mov edx, dword [edi + 8]
mov ecx, esi
push ebx
push 0
call fcn.004710f0
mov edi, dword [edi]
add esp, 8
test edi, edi
jne 0x473730
jmp 0x476208
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x2c], 1
mov edi, dword [edx + 0x188]
test edi, edi
je 0x476208
nop dword [eax + eax]
mov eax, dword [edi + 8]
push dword [eax + 4]
push 0x4dd310
push 1
push esi
call fcn.0042ab00
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x473770
jmp 0x476208
mov edi, 0x4e38a8
push dword [edi]
push 0x4dd310
push 1
push esi
call fcn.0042ab00
add edi, 0x10
add esp, 0x10
cmp edi, str.0123456789ABCDEF
jl 0x473796
jmp 0x476208
test ecx, ecx
je 0x476208
push dword [esp + 0x34]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.00455650
add esp, 4
mov dword [esp + 0x7c], eax
test eax, eax
je 0x476208
cmp byte [eax + 0x2b], 0
jne 0x476208
mov edi, dword [eax + 0x30]
test edi, edi
je 0x476208
mov edx, dword [eax + 0x3c]
mov ecx, 0xffff8000
test edx, edx
je 0x473818
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x473818
nop
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x473810
mov ebx, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x18], edx
mov eax, dword [ebx + 0x74]
test eax, eax
mov dword [ebx + 0x2c], 8
cmovne ebx, eax
mov eax, 1
mov dword [esp + 0x14], ebx
shl eax, cl
mov ebx, dword [ebx + 0x54]
test ebx, eax
jne 0x473860
mov eax, dword [esp + 0x14]
bts ebx, ecx
mov dword [eax + 0x54], ebx
cmp ecx, 1
jne 0x473860
mov ecx, eax
call fcn.0045e3b0
xor edx, edx
nop dword [eax + eax]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x473929
lea edx, [edi + 0x24]
mov dword [esp + 0x78], edx
movzx eax, byte [edi + 0x1a]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x47387e
jmp dword [eax*4 + 0x4762ec]
mov ecx, str.SET_NULL
jmp 0x4738a6
mov ecx, str.SET_DEFAULT
jmp 0x4738a6
mov ecx, str.CASCADE
jmp 0x4738a6
mov ecx, str.RESTRICT
jmp 0x4738a6
mov ecx, str.NO_ACTION
movzx eax, byte [edi + 0x19]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x4738b2
jmp dword [eax*4 + 0x4762fc]
mov eax, str.SET_NULL
jmp 0x4738da
mov eax, str.SET_DEFAULT
jmp 0x4738da
mov eax, str.CASCADE
jmp 0x4738da
mov eax, str.RESTRICT
jmp 0x4738da
mov eax, str.NO_ACTION
push str.NONE
push eax
mov eax, dword [esp + 0x84]
push ecx
push dword [edx + 4]
mov ecx, dword [edx]
mov eax, dword [eax + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edi + 8]
push ebx
push dword [esp + 0x34]
push str.iissssss
push 1
push esi
call fcn.0042ab00
mov edx, dword [esp + 0xa4]
inc ebx
add edx, 8
add esp, 0x2c
mov dword [esp + 0x78], edx
cmp ebx, dword [edi + 0x14]
jl 0x473872
mov edx, dword [esp + 0x18]
mov edi, dword [edi + 4]
inc edx
mov dword [esp + 0x18], edx
test edi, edi
jne 0x473860
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov eax, dword [ebx + 0x2c]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x28], eax
inc eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 0x2c], eax
add ecx, ecx
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x476208
jmp 0x47398a
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4739ab
push dword [esp + 0x34]
xor edx, edx
mov ecx, ebx
push eax
call fcn.00455a30
mov edx, dword [esp + 0x14]
add esp, 8
xor ecx, ecx
jmp 0x4739b0
mov eax, dword [ecx + 8]
mov ecx, dword [ecx]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], eax
test eax, eax
je 0x474110
cmp byte [eax + 0x2b], 0
jne 0x474110
cmp dword [eax + 0x30], 0
je 0x474110
mov ecx, dword [eax + 0x3c]
mov edi, 0xffff8000
test ecx, ecx
je 0x4739f8
mov eax, dword [edx + 0x10]
xor edi, edi
add eax, 0xc
cmp dword [eax], ecx
je 0x4739f8
nop dword [eax]
lea eax, [eax + 0x10]
inc edi
cmp dword [eax], ecx
jne 0x4739f0
mov eax, dword [edx + 0x10]
mov ecx, edi
shl ecx, 4
mov edx, ebx
mov dword [esp + 0x7c], ecx
mov eax, dword [ecx + eax]
mov ecx, edi
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov ebx, dword [edx + 0x54]
test ebx, eax
jne 0x473b38
bts ebx, edi
mov dword [edx + 0x54], ebx
cmp edi, 1
jne 0x473b41
mov ecx, edx
call fcn.0045e3b0
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
movsx eax, word [ebx + 0x22]
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x2c]
jle 0x473a5a
mov dword [ecx + 0x2c], eax
push 0x64
push ebx
push edi
xor edx, edx
call fcn.00469780
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, esi
push dword [ebx]
call fcn.0042aa50
mov ecx, dword [ebx + 0x30]
add esp, 4
mov dword [esp + 0x18], ecx
mov eax, 1
mov dword [esp + 0x2c], eax
test ecx, ecx
je 0x473c22
mov eax, edi
shl eax, 4
mov dword [esp + 0x7c], eax
nop dword [eax]
mov edx, dword [ecx + 8]
push dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
call fcn.00455650
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x473c02
mov dword [esp + 0x5c], 0
cmp edi, 1
je 0x473af6
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [esp + 0x7c]
mov ecx, dword [ecx + 0x10]
mov eax, dword [ecx + eax + 4]
cmp byte [eax + 9], 0
je 0x473af6
push dword [ebx]
mov ecx, dword [esp + 0x18]
mov edx, edi
push 0
push dword [ebx + 0x14]
call fcn.00454ac0
add esp, 0xc
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x5c]
push 0
push eax
push dword [esp + 0x20]
mov edx, ebx
call fcn.004663e0
add esp, 0xc
test eax, eax
jne 0x476208
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x2c]
test eax, eax
jne 0x473b7a
mov ecx, dword [esp + 0x14]
push 0x64
push ebx
push edi
call fcn.00469780
add esp, 0xc
jmp 0x473c02
cmp edi, 1
je 0x473a3f
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x3c]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x473a43
push dword [ebx]
mov ecx, dword [esp + 0x18]
mov edx, edi
push 0
push dword [ebx + 0x14]
call fcn.00454ac0
add esp, 0xc
jmp 0x473a43
mov ecx, dword [esi + 0x74]
mov ebx, dword [eax + 0x2c]
cmp dword [esi + 0x78], ecx
jg 0x473b99
push edi
push ebx
push edx
mov edx, 0x64
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x473bc0
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x64
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov ecx, eax
mov edx, dword [esp + 0x5c]
mov ebx, dword [eax + 8]
call fcn.0045ec90
mov edx, eax
test edx, edx
je 0x473c02
mov ecx, dword [ebx]
cmp byte [ecx + 0x53], 0
je 0x473bf0
push edx
mov edx, 0xfffffff7
call fcn.0042b470
add esp, 4
jmp 0x473c02
mov eax, dword [ebx + 0x74]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x70]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x473aa0
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x28], eax
jge 0x473c2e
mov dword [ecx + 0x28], eax
mov edx, dword [esi + 0x74]
mov dword [esp + 0x30], edx
cmp dword [esi + 0x78], edx
jg 0x473c55
push 0
push 0
push 0
mov edx, 0x26
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov dword [esp + 0x30], eax
jmp 0x473c88
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x26
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x30]
mov dword [esp + 0x60], 1
mov dword [esp + 0x1c], edi
test edi, edi
je 0x47408f
nop
push dword [esp + 0x34]
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x10]
call fcn.00455650
xor edx, edx
mov dword [esp + 0x80], eax
add esp, 4
mov dword [esp + 0x5c], 0
mov dword [esp + 0x2c], edx
test eax, eax
je 0x473ce9
lea ecx, [esp + 0x2c]
mov edx, eax
push ecx
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x1c]
push edi
call fcn.004663e0
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
inc ecx
dec dword [eax + 0x38]
mov ebx, dword [eax + 0x38]
mov eax, dword [edi + 0x14]
add eax, ecx
mov dword [esp + 0x18], ebx
cmp eax, dword [esi + 0x2c]
mov esi, dword [esp + 0x40]
jle 0x473d19
mov esi, dword [esp + 0x14]
mov dword [esi + 0x2c], eax
mov esi, dword [esp + 0x40]
mov eax, dword [edi + 0x14]
mov dword [esp + 0x78], 0
test eax, eax
jle 0x473dde
mov ebx, dword [esp + 0x1c]
mov edi, ecx
add ebx, 0x24
xor ecx, ecx
mov dword [esp + 0x38], ecx
nop dword [eax + eax]
lea eax, [edx + ecx]
test edx, edx
jne 0x473d49
mov eax, ebx
mov edx, dword [esp + 0x3c]
mov ecx, esi
push edi
push dword [eax]
push 0
call fcn.00447e20
mov ecx, dword [esi + 0x74]
add esp, 0xc
cmp dword [esi + 0x78], ecx
jg 0x473d7c
push 0
push dword [esp + 0x1c]
mov edx, 0x32
mov ecx, esi
push edi
call fcn.0042a9a0
add esp, 0xc
jmp 0x473dab
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x1c]
add ebx, 8
mov edx, dword [esp + 0x78]
inc edi
mov ecx, dword [esp + 0x38]
inc edx
add ecx, 4
mov dword [esp + 0x78], edx
mov eax, dword [eax + 0x14]
cmp edx, eax
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], ecx
jl 0x473d40
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x473e87
push eax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.00469930
mov ecx, dword [esp + 0x30]
add esp, 4
mov edx, 0x5f
push eax
push ecx
push dword [edi + 0x14]
lea eax, [ecx + 1]
mov ecx, esi
push eax
call fcn.0042ace0
mov edx, dword [esi + 0x74]
add esp, 0x14
cmp dword [esi + 0x78], edx
jg 0x473e38
push dword [esp + 0x28]
mov edx, 0x1f
mov ecx, esi
push ebx
push dword [esp + 0x68]
call fcn.0042a9a0
add esp, 0xc
mov edx, eax
jmp 0x473e6b
mov edi, dword [esp + 0x60]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x473f3a
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
jmp 0x473f32
cmp dword [esp + 0x7c], 0
je 0x473f3a
mov ecx, dword [esi + 0x74]
lea edx, [ecx + 2]
cmp dword [esi + 0x78], ecx
jg 0x473eb9
mov eax, dword [esp + 0x28]
mov ecx, esi
inc eax
push eax
push edx
push dword [esp + 0x68]
mov edx, 0x20
call fcn.0042a9a0
add esp, 0xc
jmp 0x473eed
mov edi, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x28]
inc edx
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x473f0b
push 0
push ebx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x473f3a
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x3c]
mov ecx, dword [esi + 0x74]
mov eax, dword [esi + 0x78]
test byte [edx + 0x1c], 0x80
jne 0x473f7e
cmp eax, ecx
jg 0x473f69
mov eax, dword [esp + 0x24]
mov edx, 0x85
push 0
inc eax
mov ecx, esi
push eax
push 0
call fcn.0042a9a0
add esp, 0xc
jmp 0x473fd5
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x85
jmp 0x473fb0
cmp eax, ecx
jg 0x473f9d
mov eax, dword [esp + 0x24]
mov edx, 0x49
push 0
inc eax
mov ecx, esi
push eax
push 0
call fcn.0042a9a0
add esp, 0xc
jmp 0x473fd5
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x49
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
inc edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 4], 0
mov eax, dword [esp + 0x60]
dec eax
push eax
push dword [edi + 8]
mov eax, dword [esp + 0x2c]
push 0x4dfc4c
add eax, 2
push eax
push esi
call fcn.0042ab00
mov ecx, dword [esi + 0x74]
add esp, 0x14
cmp dword [esi + 0x78], ecx
jg 0x474015
push 0
push 4
push dword [esp + 0x2c]
mov edx, 0x52
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x474048
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x474062
push ebx
mov edx, esi
call fcn.0042b160
add esp, 4
jmp 0x47406b
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + ebx*4], eax
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x47407c
mov ecx, dword [esp + 0xc]
call fcn.00404680
mov edi, dword [edi + 4]
inc dword [esp + 0x60]
mov dword [esp + 0x1c], edi
test edi, edi
jne 0x473ca0
mov ebx, dword [esp + 0x30]
mov ecx, dword [esi + 0x74]
lea edx, [ebx + 1]
cmp dword [esi + 0x78], ecx
jg 0x4740b4
push 0
push edx
push 0
mov edx, 5
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x4740e3
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
test ebx, ebx
jns 0x4740ed
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x4740fc
mov eax, 0x4edf68
jmp 0x474105
mov eax, dword [esi + 0x70]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
mov dword [eax + 8], edx
test ecx, ecx
jne 0x473986
jmp 0x476208
test ecx, ecx
je 0x476208
push 0
mov edx, 1
call fcn.00470dc0
mov ecx, dword [esp + 0x10]
xor edx, edx
add esp, 4
test al, al
setne dl
call fcn.004660f0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
mov ebx, dword [esp + 0x1c]
xor eax, eax
mov edi, dword [esp + 0x14]
or edx, 0xffffffff
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
movzx eax, byte [eax]
mov al, byte [eax + 0x4e3418]
mov byte [esp + 0x6b], al
mov eax, dword [esp + 0x24]
cmp dword [eax], 0
mov eax, 0x64
mov dword [edi + 0x2c], 6
cmove ebx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x4741f5
lea edx, [esp + 0x30]
call fcn.004089c0
test eax, eax
je 0x4741c2
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
test eax, eax
jg 0x4741f5
mov eax, 0x64
jmp 0x4741f1
test ebx, ebx
js 0x4741d6
mov eax, dword [esp + 0xc]
mov ecx, ebx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
jmp 0x4741d8
xor eax, eax
push eax
push dword [esp + 0x14]
xor edx, edx
mov ecx, edi
call fcn.00455a30
mov dword [esp + 0x34], eax
add esp, 8
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 0x74]
lea edx, [eax - 1]
cmp dword [esi + 0x78], ecx
jg 0x474216
push 0
push 1
push edx
mov edx, 0x46
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x474245
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov dword [esp + 0x28], ecx
lea ebx, [ecx + 1]
cmp dword [edx + 0x14], ecx
jle 0x475684
mov eax, dword [esp + 0x1c]
nop
xor ebx, ebx
test eax, eax
js 0x47426e
cmp ecx, eax
jne 0x475671
mov eax, dword [edi + 0x74]
mov edx, edi
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x54]
test edi, eax
jne 0x47429c
bts edi, ecx
mov dword [edx + 0x54], edi
cmp ecx, 1
jne 0x47429c
mov ecx, edx
call fcn.0045e3b0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
add ecx, ecx
xor edx, edx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [esp + 0x78], eax
mov edi, dword [eax + 0x10]
test edi, edi
je 0x475661
mov ecx, dword [esp + 0x2c]
nop
mov eax, dword [edi + 8]
test ecx, ecx
je 0x4742cb
cmp ecx, eax
jne 0x4742f2
test byte [eax + 0x1c], 0x80
jne 0x4742d2
inc edx
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
je 0x4742e9
nop dword [eax + eax]
mov eax, dword [eax + 0x14]
inc edx
inc ecx
test eax, eax
jne 0x4742e0
cmp ecx, ebx
cmovg ebx, ecx
mov ecx, dword [esp + 0x2c]
mov edi, dword [edi]
test edi, edi
jne 0x4742c0
mov dword [esp + 0x64], ebx
test edx, edx
je 0x475661
test ecx, ecx
lea eax, [edx + 1]
mov ecx, dword [esp + 0xc]
cmove eax, edx
push edi
lea eax, [eax*4 + 4]
push eax
call fcn.00404a90
mov edi, eax
add esp, 8
test edi, edi
je 0x47567f
xor edx, edx
cmp dword [esp + 0x2c], edx
je 0x47433f
mov edx, 1
mov dword [edi + 4], 0
mov ebx, dword [esp + 0x78]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x47438d
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x64], eax
mov ecx, dword [ebx + 8]
test esi, esi
je 0x474361
cmp esi, ecx
jne 0x474383
test byte [ecx + 0x1c], 0x80
jne 0x47436e
mov eax, dword [ecx + 0x14]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x474383
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x474375
mov ebx, dword [ebx]
test ebx, ebx
jne 0x474356
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
mov dword [edi], edx
add eax, 8
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
mov byte [ebx + 0x13], 0
cmovle ecx, eax
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x2c], ecx
mov ebx, dword [esi + 0x74]
cmp dword [esi + 0x78], ebx
jg 0x4743d0
push 1
push edx
push 2
mov edx, 0x99
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov ebx, eax
jmp 0x474403
lea eax, [ebx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x99
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
je 0x47441b
push edi
mov edx, 0xfffffff1
call fcn.0042b470
add esp, 4
jmp 0x47444b
test ebx, ebx
jns 0x474423
mov ebx, dword [esi + 0x74]
dec ebx
mov eax, dword [esi + 0x70]
lea ecx, [ebx + ebx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x474444
push 0xfffffffffffffff1
push edi
mov edx, eax
mov ecx, esi
call fcn.0042b6e0
add esp, 8
jmp 0x47444b
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf1
mov eax, dword [esi + 0x74]
mov ebx, dword [esp + 0x28]
test eax, eax
jle 0x474464
lea ecx, [eax + eax*4]
movzx edx, bl
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esi + 0x74]
cmp dword [esi + 0x78], edi
jg 0x474485
push 0
push 0
push 2
mov edx, 0x32
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edi, eax
jmp 0x4744b8
lea eax, [edi + 1]
mov dword [esi + 0x74], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
add ebx, ebx
mov eax, dword [edx + 0x10]
push dword [eax + ebx*8]
push str._in_database__s__n
push edx
call fcn.00406f50
mov edx, dword [esi + 0x74]
add esp, 0xc
mov ebx, eax
cmp dword [esi + 0x78], edx
jg 0x4744f5
push 0
push 3
push 0
mov edx, 0x74
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edx, eax
jmp 0x47452c
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
je 0x474544
push ebx
mov edx, 0xfffffff9
call fcn.0042b470
add esp, 4
jmp 0x474578
test edx, edx
jns 0x47454c
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x47456d
push 0xfffffffffffffff9
push ebx
mov edx, eax
mov ecx, esi
call fcn.0042b6e0
add esp, 8
jmp 0x474578
test ebx, ebx
je 0x474578
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0xf9
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x474597
push 3
push 3
push 2
mov edx, 0x6f
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x4745ca
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.00471180
mov edx, dword [esi + 0x74]
test edi, edi
jns 0x4745db
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x4745ea
mov eax, 0x4edf68
jmp 0x4745f3
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x78]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x7c], edi
test edi, edi
je 0x475661
nop dword [eax]
mov edi, dword [edi + 8]
mov dword [esp + 0x34], edi
mov dword [esp + 0x70], 0
mov dword [esp + 0x64], 0xffffffff
cmp byte [edi + 0x2b], 0
jne 0x47564f
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x474641
cmp eax, edi
jne 0x47564f
test byte [edi + 0x1c], 0x80
jne 0x474651
mov dword [esp + 0x60], 0
jmp 0x474674
mov ebx, dword [edi + 8]
mov dword [esp + 0x60], ebx
test ebx, ebx
je 0x474674
nop dword [eax]
mov eax, dword [ebx + 0x38]
and al, 3
cmp al, 2
je 0x474670
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x474660
mov dword [esp + 0x60], ebx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x60]
mov edx, edi
push eax
push 0
push 1
push 0
push 0x64
call fcn.0046e630
mov ecx, dword [esi + 0x74]
add esp, 0x18
cmp dword [esi + 0x78], ecx
jg 0x4746b3
push 0
push 7
push 0
mov edx, 0x46
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x4746e6
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 7
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x47474b
mov edi, 8
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x474710
push 0
push edi
push 0
mov edx, 0x46
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47473f
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx + 0x14]
inc edi
test ebx, ebx
jne 0x4746f2
mov edi, dword [esp + 0x34]
mov ecx, dword [esi + 0x74]
mov ebx, dword [esp + 0x5c]
cmp dword [esi + 0x78], ecx
jg 0x47476d
push 0
push 0
push ebx
mov edx, 0x26
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47479c
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x26
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
mov dword [esp + 0x78], edx
cmp dword [esi + 0x78], edx
jg 0x4747c3
push 0
push 1
push 7
mov edx, 0x54
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov dword [esp + 0x78], eax
jmp 0x4747f6
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x54
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x6b], 0x71
je 0x474865
movsx edx, word [edi + 0x24]
mov ecx, dword [esi + 0x74]
dec edx
cmp dword [esi + 0x78], ecx
jg 0x47481f
push 3
push edx
push ebx
mov edx, 0x5c
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47484e
mov edi, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x474865
lea ecx, [eax + eax*4]
mov edx, 0x80
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
movzx ecx, word [edi + 0x1e]
xor ebx, ebx
and ecx, 1
mov dword [esp + 0x44], ebx
xor eax, eax
mov dword [esp + 0x24], ecx
cmp ax, word [edi + 0x22]
jge 0x474c95
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x34]
mov edi, dword [edi + 4]
add edi, eax
mov dword [esp + 0x38], edi
movsx eax, word [edx + 0x20]
cmp ebx, eax
je 0x474c77
test byte [edi + 4], 0xf
jne 0x4748ad
test ecx, ecx
je 0x474c77
test ecx, ecx
je 0x4748c5
mov eax, dword [esp + 0x14]
dec dword [eax + 0x38]
mov ebx, dword [eax + 0x38]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x44]
jmp 0x4748cd
mov dword [esp + 0x3c], 0
push 3
push ebx
push dword [esp + 0x64]
mov ecx, esi
call fcn.00447e20
mov edx, dword [esi + 0x74]
add esp, 0xc
mov eax, dword [esi]
lea ecx, [edx + edx*4]
shl ecx, 2
cmp byte [eax + 0x53], 0
je 0x4748f6
mov eax, 0x4edf68
jmp 0x4748fe
mov eax, dword [esi + 0x70]
add eax, 0xffffffec
add eax, ecx
cmp byte [eax], 0x5c
jne 0x474914
test edx, edx
jle 0x474914
mov eax, dword [esi + 0x70]
mov edx, 0x80
mov word [eax + ecx - 0x12], dx
test byte [edi + 4], 0xf
je 0x474ac8
mov ebx, dword [esi + 0x74]
cmp dword [esi + 0x78], ebx
jg 0x47493f
push 0
push 0
push 3
mov edx, 0x33
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov ebx, eax
jmp 0x474972
lea eax, [ebx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x33
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [edi]
mov eax, dword [esp + 0x38]
push dword [eax]
push str.NULL_value_in__s._s
push dword [esp + 0x18]
call fcn.00406f50
mov edx, dword [esi + 0x74]
add esp, 0x10
mov edi, eax
cmp dword [esi + 0x78], edx
jg 0x4749ae
push 0
push 3
push 0
mov edx, 0x74
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edx, eax
jmp 0x4749e5
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
je 0x4749fd
push edi
mov edx, 0xfffffff9
call fcn.0042b470
add esp, 4
jmp 0x474a31
test edx, edx
jns 0x474a05
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x474a26
push 0xfffffffffffffff9
push edi
mov edx, eax
mov ecx, esi
call fcn.0042b6e0
add esp, 8
jmp 0x474a31
test edi, edi
je 0x474a31
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
cmp dword [esp + 0x24], 0
mov edi, dword [esp + 0x38]
je 0x474a98
mov eax, dword [edi + 4]
and al, 0xf0
cmp al, 0x10
je 0x474a98
mov ecx, dword [esi + 0x74]
mov edx, dword [esp + 0x3c]
cmp dword [esi + 0x78], ecx
jg 0x474a67
push 0
push edx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x474a9f
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x474a9f
mov ecx, esi
call fcn.00471180
mov edx, dword [esi + 0x74]
test ebx, ebx
jns 0x474aa9
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x474ab8
mov eax, 0x4edf68
jmp 0x474ac1
mov eax, dword [esi + 0x70]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov ebx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x34]
test dword [eax + 0x1c], 0x10000
je 0x474c73
mov eax, dword [edi + 4]
shr eax, 4
and eax, 0xf
cmp eax, 1
je 0x474c73
mov ebx, dword [esi + 0x74]
movsx edx, byte [eax + 0x4e69b3]
cmp dword [esi + 0x78], ebx
jg 0x474b12
push edx
push 0
push 3
mov edx, 0x15
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov ebx, eax
jmp 0x474b45
mov edi, dword [esp + 0x38]
lea eax, [ebx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x15
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov eax, dword [edx + 4]
push dword [ecx + eax]
mov eax, dword [edi + 4]
push dword [edx]
shr eax, 4
and eax, 0xf
push dword [eax*4 + 0x4ec8f4]
push str.non__s_value_in__s._s
push dword [esp + 0x1c]
call fcn.00406f50
mov edx, dword [esi + 0x74]
add esp, 0x14
mov edi, eax
cmp dword [esi + 0x78], edx
jg 0x474b99
push 0
push 3
push 0
mov edx, 0x74
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edx, eax
jmp 0x474bd0
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
je 0x474be8
push edi
mov edx, 0xfffffff9
call fcn.0042b470
add esp, 4
jmp 0x474c1c
test edx, edx
jns 0x474bf0
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x474c11
push 0xfffffffffffffff9
push edi
mov edx, eax
mov ecx, esi
call fcn.0042b6e0
add esp, 8
jmp 0x474c1c
test edi, edi
je 0x474c1c
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x3c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x474c3a
push edx
mov edx, esi
call fcn.0042b160
add esp, 4
jmp 0x474c43
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
mov ecx, esi
call fcn.00471180
mov edx, dword [esi + 0x74]
test ebx, ebx
jns 0x474c54
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x474c63
mov eax, 0x4edf68
jmp 0x474c6c
mov eax, dword [esi + 0x70]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov ebx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
inc ebx
add dword [esp + 0x30], 0x10
mov dword [esp + 0x44], ebx
movsx eax, word [edi + 0x22]
cmp ebx, eax
mov eax, dword [esp + 0x30]
jl 0x474886
mov edx, dword [edi + 0x10]
test edx, edx
je 0x474e71
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x20]
and eax, 0x200
or eax, 0
jne 0x474e71
push eax
mov ecx, ebx
call fcn.00443cb0
add esp, 4
mov edx, eax
cmp byte [ebx + 0x53], 0
mov dword [esp + 0x38], edx
jne 0x474e66
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov ebx, dword [eax + 0x38]
dec ebx
mov dword [esp + 0x30], ebx
lea eax, [ebx - 1]
mov dword [ecx + 0x38], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
inc eax
mov dword [ecx + 0x34], eax
mov edi, dword [edx]
dec edi
test edi, edi
jle 0x474d36
mov esi, dword [esp + 0x30]
lea ebx, [edi*4 + 2]
add ebx, edi
lea ebx, [edx + ebx*4]
nop dword [eax]
push 0
push esi
push dword [ebx]
push ecx
call fcn.0044b490
mov ecx, dword [esp + 0x24]
lea ebx, [ebx - 0x14]
dec edi
add esp, 0x10
test edi, edi
jg 0x474d10
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
push 0x10
push dword [esp + 0x48]
push dword [edx + 8]
push ecx
call fcn.0044af70
mov ecx, dword [esi + 0xc]
add esp, 0x10
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x474d62
push ebx
mov edx, esi
call fcn.0042b160
add esp, 4
jmp 0x474d6b
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + ebx*4], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [eax + 0x34], 0
mov eax, dword [esp + 0x34]
push dword [eax]
push str.CHECK_constraint_failed_in__s
push ebx
call fcn.00406f50
mov edx, dword [esi + 0x74]
add esp, 0xc
mov edi, eax
cmp dword [esi + 0x78], edx
jg 0x474db1
push 0
push 3
push 0
mov edx, 0x74
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edx, eax
jmp 0x474de4
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
je 0x474dfc
push edi
mov edx, 0xfffffff9
call fcn.0042b470
add esp, 4
jmp 0x474e30
test edx, edx
jns 0x474e04
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x474e25
push 0xfffffffffffffff9
push edi
mov edx, eax
mov ecx, esi
call fcn.0042b6e0
add esp, 8
jmp 0x474e30
test edi, edi
je 0x474e30
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
mov ecx, esi
call fcn.00471180
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x44]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x474e55
push edx
mov edx, esi
call fcn.0042b160
add esp, 4
jmp 0x474e5e
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x474e71
mov ecx, ebx
call fcn.00444910
mov bl, byte [esp + 0x6b]
cmp bl, 0x71
je 0x475429
mov edi, dword [edi + 8]
mov dword [esp + 0x24], edi
test edi, edi
je 0x475429
mov eax, dword [esp + 0x6c]
mov ecx, 8
sub ecx, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x60]
dec dword [eax + 0x38]
mov ebx, dword [eax + 0x38]
cmp ecx, edi
je 0x475412
push dword [esp + 0x64]
lea ecx, [esp + 0x4c]
mov edx, edi
push dword [esp + 0x74]
push ecx
push 0
push 0
push dword [esp + 0x70]
mov ecx, eax
call fcn.00461630
mov edx, dword [esp + 0x8c]
add esp, 0x18
mov ecx, dword [esi + 0x74]
add edx, dword [esp + 0x3c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], edi
cmp dword [esi + 0x78], ecx
jg 0x474f08
push 0
push 1
push edx
mov edx, 0x54
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x474f3b
mov edi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x54
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
movzx edx, word [edi + 0x34]
mov edi, dword [esi + 0x74]
mov dword [esp + 0x38], edx
cmp dword [esi + 0x78], edi
jg 0x474f67
push dword [esp + 0x64]
mov edx, 0x1f
mov ecx, esi
push ebx
push dword [esp + 0x44]
call fcn.0042a9a0
add esp, 0xc
mov edi, eax
jmp 0x474f96
mov edx, dword [esp + 0x3c]
lea eax, [edi + 1]
mov dword [esi + 0x74], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esp + 0x38]
cmp byte [eax + 0x53], 0
jne 0x474fb1
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
push str.row
mov edx, 3
mov ecx, esi
call fcn.0042aa50
mov ecx, dword [esi + 0x74]
add esp, 4
cmp dword [esi + 0x78], ecx
jg 0x474fe4
push 3
push 3
push 7
mov edx, 0x6f
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x475017
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push str._missing_from_index
mov edx, 4
mov ecx, esi
call fcn.0042aa50
mov ecx, dword [esi + 0x74]
add esp, 4
cmp dword [esi + 0x78], ecx
jg 0x47504a
push 3
push 3
push 4
mov edx, 0x6f
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47507d
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
mov edx, 4
mov ecx, esi
push dword [eax]
call fcn.0042aa50
mov ecx, dword [esi + 0x74]
add esp, 4
mov dword [esp + 0x44], eax
cmp dword [esi + 0x78], ecx
jg 0x4750b5
push 3
push 3
push 4
mov edx, 0x6f
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x4750e8
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.00471180
mov edx, dword [esi + 0x74]
mov dword [esp + 0x80], eax
test edi, edi
jns 0x475100
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x47510f
mov eax, 0x4edf68
jmp 0x475118
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x36], 0
je 0x4753aa
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x30], edx
dec dword [ecx + 0x38]
mov ebx, dword [ecx + 0x38]
xor ecx, ecx
mov dword [esp + 0x38], ebx
cmp cx, word [eax + 0x32]
jae 0x4751e4
mov edi, dword [esp + 0x64]
xor ebx, ebx
jmp 0x475155
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
movsx ecx, word [ebx + eax]
test ecx, ecx
js 0x475170
mov eax, dword [esp + 0x34]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
jne 0x4751c7
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x475194
push 0
push dword [esp + 0x3c]
mov edx, 0x32
mov ecx, esi
push edi
call fcn.0042a9a0
mov edx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x4751c7
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
inc edx
inc edi
mov dword [esp + 0x30], edx
add ebx, 2
movzx eax, word [eax + 0x32]
cmp edx, eax
jl 0x475151
mov ebx, dword [esp + 0x38]
mov edi, dword [esi + 0x74]
cmp dword [esi + 0x78], edi
jg 0x475207
push 0
push 0
push dword [esp + 0x44]
mov edx, 5
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edi, eax
jmp 0x47523a
mov edx, dword [esp + 0x3c]
lea eax, [edi + 1]
mov dword [esi + 0x74], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x475258
push 0
push ebx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x475287
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
test edi, edi
jns 0x475291
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x4752a0
mov eax, 0x4edf68
jmp 0x4752a9
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x74]
movzx edi, word [eax + 0x32]
cmp dword [esi + 0x78], edx
jg 0x4752d8
push dword [esp + 0x64]
mov edx, 0x28
mov ecx, esi
push ebx
push dword [esp + 0x44]
call fcn.0042a9a0
add esp, 0xc
mov edx, eax
jmp 0x47530b
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x64]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x28
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x475322
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
push str.non_unique_entry_in_index
mov edx, 3
mov ecx, esi
call fcn.0042aa50
mov ecx, dword [esi + 0x74]
add esp, 4
mov edx, dword [esp + 0x44]
cmp dword [esi + 0x78], ecx
jg 0x475358
push 0
push edx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x475387
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4753a1
push ebx
mov edx, esi
call fcn.0042b160
add esp, 4
jmp 0x4753aa
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + ebx*4], eax
mov ecx, dword [esp + 0x80]
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x4753bb
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x4753ca
mov eax, 0x4edf68
jmp 0x4753d3
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x48]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x14]
test edi, edi
je 0x47540a
mov edx, dword [eax + 8]
not edi
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4753fd
push edi
call fcn.0042b160
add esp, 4
jmp 0x475406
mov ecx, dword [ecx + 0x40]
mov eax, dword [edx + 0x74]
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x60]
mov edi, dword [edi + 0x14]
inc dword [esp + 0x3c]
mov dword [esp + 0x24], edi
test edi, edi
jne 0x474ea8
mov bl, byte [esp + 0x6b]
mov ecx, dword [esi + 0x74]
mov edi, dword [esp + 0x78]
cmp dword [esi + 0x78], ecx
jg 0x47544d
push 0
push edi
push dword [esp + 0x64]
mov edx, 5
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47547c
mov edx, dword [esp + 0x5c]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
lea ecx, [edi - 1]
mov edx, dword [esi + 0x74]
cmp byte [eax + 0x53], 0
je 0x475491
mov eax, 0x4edf70
jmp 0x4754a4
test ecx, ecx
mov eax, edx
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x70]
lea eax, [eax + ecx*4]
add eax, 0xfffffff4
mov dword [eax], edx
cmp bl, 0x71
je 0x47564f
push str.wrong__of_entries_in_index
mov edx, 2
mov ecx, esi
call fcn.0042aa50
mov eax, dword [esp + 0x38]
add esp, 4
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x47564f
mov ecx, dword [esp + 0x60]
mov eax, 8
mov dword [esp + 0x30], eax
nop
cmp ecx, ebx
je 0x47563f
mov edx, dword [esp + 0x6c]
mov ecx, dword [esi + 0x74]
add edx, 0xfffffff8
add edx, eax
cmp dword [esi + 0x78], ecx
jg 0x47550f
push 0
push 3
push edx
mov edx, 0x60
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47553e
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x74]
mov edx, dword [esp + 0x30]
cmp dword [esi + 0x78], edi
jg 0x475562
push 3
push 0
push edx
mov edx, 0x35
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edi, eax
jmp 0x475591
lea eax, [edi + 1]
mov dword [esi + 0x74], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x4755a8
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
push dword [ebx]
mov edx, 4
mov ecx, esi
call fcn.0042aa50
mov ecx, dword [esi + 0x74]
add esp, 4
cmp dword [esi + 0x78], ecx
jg 0x4755d8
push 3
push 2
push 4
mov edx, 0x6f
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x47560b
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
call fcn.00471180
mov edx, dword [esi + 0x74]
test edi, edi
jns 0x47561c
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x47562b
mov eax, 0x4edf68
jmp 0x475634
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x60]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x30]
mov ebx, dword [ebx + 0x14]
inc eax
mov dword [esp + 0x30], eax
test ebx, ebx
jne 0x4754e0
mov edi, dword [esp + 0x7c]
mov edi, dword [edi]
mov dword [esp + 0x7c], edi
test edi, edi
jne 0x474610
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, dword [edx + 0x14]
jl 0x474260
mov ebx, 1
push ecx
push 0x4e6dcc
mov edx, 7
mov ecx, esi
call fcn.0042b360
mov edx, eax
add esp, 8
test edx, edx
je 0x4756c7
sub ebx, dword [esp + 0x18]
mov ecx, str.unknown_error
mov eax, dword [str.database_disk_image_is_malformed]
test eax, eax
mov dword [edx + 8], ebx
cmovne ecx, eax
mov byte [edx + 0x29], 0xff
mov dword [edx + 0x38], 0x4dfd10
mov byte [edx + 0x65], 0xff
mov dword [edx + 0x74], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 0x74]
sub ecx, 2
cmp byte [eax + 0x53], 0
mov eax, 0x4edf68
jne 0x4756dd
mov eax, dword [esi + 0x70]
mov dword [eax + 0xc], ecx
jmp 0x476208
test ecx, ecx
jne 0x47570e
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.00477790
test eax, eax
jne 0x476208
mov eax, dword [ebx]
movzx eax, byte [eax + 0x50]
mov eax, dword [eax*8 + 0x4e1810]
jmp 0x472816
mov edx, dword [esp + 0xc]
test byte [edx + 0x18], 0x40
jne 0x476208
mov edi, dword [str.UTF8]
mov ebx, 0x4e1810
test edi, edi
je 0x4757a2
nop
mov edx, ecx
sub edi, ecx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x4757d6
test eax, eax
jne 0x4757e8
mov cl, byte [ebx + 4]
mov edx, 2
movzx eax, cl
test cl, cl
mov ecx, dword [esp + 0xc]
cmovne edx, eax
mov dword [esp + 0x48], edx
push 0
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], dl
mov byte [ecx + 0x50], dl
add ecx, 0x1ac
mov edx, str.BINARY
call fcn.004095f0
add esp, 4
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x47579b
mov eax, dword [esp + 0x48]
movzx eax, al
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 0xffffffec
mov edx, dword [esp + 0xc]
mov dword [edx + 8], ecx
cmp dword [ebx], 0
jne 0x476208
push dword [esp + 0x10]
push str.unsupported_encoding:__s
push dword [esp + 0x1c]
call fcn.00407e90
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x20]
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
movzx ecx, byte [eax + 0x4e3418]
movzx eax, byte [esi + 0x4e3418]
sub ecx, eax
jne 0x4757ee
inc edx
jmp 0x475734
mov edi, dword [ebx + 8]
add ebx, 8
test edi, edi
je 0x4757ab
mov ecx, dword [esp + 0x10]
jmp 0x475730
mov eax, dword [esi + 0xa4]
mov edx, dword [esp + 0x1c]
bts eax, edx
mov edi, dword [ebx + 8]
mov dword [esi + 0xa4], eax
cmp edx, 1
je 0x47583f
mov eax, dword [esi]
mov ecx, edx
shl ecx, 4
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x47583f
mov eax, dword [esi + 0xa8]
bts eax, edx
mov dword [esi + 0xa8], eax
cmp dword [esp + 0x10], 0
je 0x4758b9
test byte [ebx + 5], 8
jne 0x4758b9
push ecx
push 0x4e6014
mov edx, 2
mov ecx, esi
call fcn.0042b360
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x84]
mov esi, eax
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x24]
add esp, 8
mov dword [esi + 4], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edi
call fcn.004089c0
mov ecx, dword [esp + 0x7c]
mov eax, 1
mov edx, dword [esp + 0x20]
mov dword [esi + 0x20], ecx
mov ecx, dword [esp + 0xc]
mov word [esi + 0x16], ax
call fcn.00404680
mov ebx, dword [esp + 0x10]
jmp 0x47621d
push ecx
push 0x4e1bf4
mov edx, 3
mov ecx, esi
call fcn.0042b360
mov ecx, dword [esp + 0x24]
add esp, 8
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x20], edi
and dword [esi + 0xa0], 0xffffffdf
jmp 0x476208
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [eax + 0x2c], 1
mov ecx, 1
cmp edi, 0x24
ja 0x4758db
mov eax, dword [edi*4 + 0x4e4d18]
inc edi
test eax, eax
je 0x4758db
mov edx, ecx
mov ecx, esi
push eax
call fcn.0042aa50
mov ecx, dword [esi + 0x74]
add esp, 4
cmp dword [esi + 0x78], ecx
jg 0x475936
push 0
push 1
push 1
mov edx, 0x52
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x4758f4
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4758f4
mov eax, dword [esp + 0x24]
mov ebx, 0xc
cmp dword [eax], 0
cmovne ebx, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x18], ebx
test ecx, ecx
je 0x475a33
mov ebx, str.full
mov edx, ecx
sub ebx, ecx
movzx eax, byte [edx]
movzx edi, byte [edx + ebx]
cmp eax, edi
jne 0x4759aa
test eax, eax
jne 0x4759bc
lea edx, [eax + 1]
jmp 0x475a2f
movzx ecx, byte [eax + 0x4e3418]
movzx eax, byte [edi + 0x4e3418]
sub ecx, eax
jne 0x4759bf
inc edx
jmp 0x475993
mov ebx, dword [esp + 0x10]
mov edi, str.restart
mov edx, ebx
sub edi, ebx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [edi + edx]
cmp ecx, eax
jne 0x4759e4
test ecx, ecx
jne 0x4759f6
lea edx, [ecx + 2]
jmp 0x475a2f
movzx eax, byte [eax + 0x4e3418]
movzx ecx, byte [ecx + 0x4e3418]
sub ecx, eax
jne 0x4759f9
inc edx
jmp 0x4759d0
mov edx, ebx
mov ebx, str.truncate
sub ebx, dword [esp + 0x10]
movzx eax, byte [edx]
movzx edi, byte [edx + ebx]
cmp eax, edi
jne 0x475a18
test eax, eax
jne 0x475a2a
lea edx, [eax + 3]
jmp 0x475a2f
movzx ecx, byte [eax + 0x4e3418]
movzx eax, byte [edi + 0x4e3418]
sub ecx, eax
jne 0x475a2d
inc edx
jmp 0x475a04
xor edx, edx
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x2c], 3
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x475a5b
push 1
push edx
push ebx
mov edx, 6
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x475a86
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 6
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x475a97
push 0
push 3
jmp 0x471d61
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
jmp 0x471c23
test ecx, ecx
je 0x475ae4
lea edx, [esp + 0x7c]
mov dword [esp + 0x7c], 0
call fcn.004089c0
push dword [esp + 0x7c]
push dword [esp + 0x10]
call fcn.004b1270
add esp, 8
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x110], 0x4b1180
jne 0x475aff
mov eax, dword [eax + 0x114]
jmp 0x4761fb
xor eax, eax
jmp 0x4761fb
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x475b1f
push eax
call dword [0x4ebac8]
mov edx, dword [esp + 0x10]
add esp, 4
cmp byte [edx + 0x5b], 0
jne 0x475b30
mov ecx, edx
call fcn.0041a580
mov edx, dword [esp + 0xc]
xor esi, esi
cmp dword [edx + 0x14], esi
jle 0x475b6f
xor edi, edi
nop dword [eax]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + edi + 4]
test eax, eax
je 0x475b66
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xe4]
push dword [eax + 0x2c]
call dword [0x4ebb0c]
mov edx, dword [esp + 0x10]
add esp, 4
inc esi
add edi, 0x10
cmp esi, dword [edx + 0x14]
jl 0x475b40
cmp byte [edx + 0x5b], 0
jne 0x475b80
mov ecx, edx
call fcn.0041a5d0
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
jmp 0x4715c8
test ecx, ecx
je 0x475bb0
lea edx, [esp + 0x7c]
mov dword [esp + 0x7c], 0
call fcn.004089c0
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], ecx
test cl, 2
je 0x476208
jmp 0x475bb8
mov dword [esp + 0x78], 0xfffe
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x28]
mov dword [esp + 0x28], edx
lea eax, [edx + 1]
mov dword [ecx + 0x28], eax
mov ecx, dword [esp + 0x1c]
je 0x475bdc
mov eax, ecx
mov dword [esp + 0x38], eax
jmp 0x475bf0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x38], eax
cmp ecx, eax
jg 0x475f25
mov edi, 1
mov ebx, ecx
rol edi, cl
shl ebx, 4
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], ebx
cmp ecx, 1
je 0x475f0b
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov eax, dword [ecx + 0x54]
test edi, eax
jne 0x475c2a
mov edi, dword [esp + 0x1c]
bts eax, edi
mov dword [ecx + 0x54], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 0xc]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x7c], edi
test edi, edi
je 0x475eff
nop dword [eax]
nop dword [eax + eax]
mov edi, dword [edi + 8]
test dword [edi + 0x1c], 0x100
je 0x475eed
mov ax, word [edi + 0x26]
add ax, 0x2e
movzx ebx, ax
mov eax, dword [edi + 8]
test eax, eax
je 0x475c83
test byte [eax + 0x38], 0x80
je 0x475cfc
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x475c72
test bx, bx
je 0x475cfc
mov ecx, dword [esp + 0x14]
push 0x64
push edi
push dword [esp + 0x24]
call fcn.00469780
mov ecx, dword [esi + 0x74]
add esp, 0xc
movsx edx, bx
mov ebx, dword [esp + 0x78]
and ebx, 1
add ebx, 2
add ebx, ecx
cmp dword [esi + 0x78], ecx
jg 0x475ccd
push edx
push ebx
push dword [esp + 0x30]
mov edx, 0x23
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x475cfc
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x23
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
push dword [edi]
mov ebx, dword [esp + 0x30]
mov eax, dword [edx + 0x10]
push dword [eax + ebx]
push str.ANALYZE___w_.__w_
push edx
call fcn.00406f50
add esp, 0x10
mov edi, eax
test byte [esp + 0x78], 1
je 0x475e45
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x13]
test al, al
jne 0x475d3a
inc dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x2c]
jmp 0x475d49
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov ebx, dword [ecx + eax*4 + 0x98]
mov edx, dword [esi + 0x74]
cmp dword [esi + 0x78], edx
jg 0x475d69
push 0
push ebx
push 0
mov edx, 0x74
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edx, eax
jmp 0x475d9c
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
je 0x475db4
push edi
mov edx, 0xfffffff9
call fcn.0042b470
add esp, 4
jmp 0x475de8
test edx, edx
jns 0x475dbc
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x475ddd
push 0xfffffffffffffff9
push edi
mov edx, eax
mov ecx, esi
call fcn.0042b6e0
add esp, 8
jmp 0x475de8
test edi, edi
je 0x475de8
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x475e0d
push 0
push 1
push ebx
mov edx, 0x52
mov ecx, esi
call fcn.0042a9a0
mov ebx, dword [esp + 0x38]
add esp, 0xc
jmp 0x475ee9
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x475ee9
mov edx, dword [esi + 0x74]
cmp dword [esi + 0x78], edx
jg 0x475e66
push 0
push 0
push 0
mov edx, 0x92
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
mov edx, eax
jmp 0x475e9d
mov ebx, dword [esp + 0x2c]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x92
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
je 0x475eb5
push edi
mov edx, 0xfffffff9
call fcn.0042b470
add esp, 4
jmp 0x475ee9
test edx, edx
jns 0x475ebd
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x475ede
push 0xfffffffffffffff9
push edi
mov edx, eax
mov ecx, esi
call fcn.0042b6e0
add esp, 8
jmp 0x475ee9
test edi, edi
je 0x475ee9
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x7c]
mov edi, dword [edi]
mov dword [esp + 0x7c], edi
test edi, edi
jne 0x475c50
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
inc ecx
rol edi, 1
add ebx, 0x10
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], edi
cmp ecx, eax
jle 0x475c04
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x475f47
push 0
push 0
push 0
mov edx, 0xa4
mov ecx, esi
call fcn.0042a9a0
add esp, 0xc
jmp 0x476208
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xa4
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
jmp 0x471c23
test ecx, ecx
je 0x475f90
lea edx, [esp + 0x48]
call fcn.004088b0
test eax, eax
jne 0x475f90
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.00404130
add esp, 8
call fcn.004aead0
test eax, eax
je 0x475fa5
or edi, 0xffffffff
or ebx, edi
push ebx
push edi
jmp 0x4761fe
mov eax, dword [0x4ee110]
test eax, eax
je 0x475fbd
push eax
call dword [0x4ebac8]
mov eax, dword [0x4ee110]
add esp, 4
mov edi, dword [0x4ee118]
mov ebx, dword [0x4ee11c]
test eax, eax
je 0x475fd7
push eax
call dword [0x4ebad0]
add esp, 4
push ebx
push edi
jmp 0x4761fe
test ecx, ecx
je 0x476065
lea edx, [esp + 0x48]
call fcn.004088b0
test eax, eax
jne 0x476065
call fcn.004aead0
test eax, eax
je 0x476007
or ebx, 0xffffffff
or edi, ebx
jmp 0x476039
mov eax, dword [0x4ee110]
test eax, eax
je 0x47601f
push eax
call dword [0x4ebac8]
mov eax, dword [0x4ee110]
add esp, 4
mov ebx, dword [0x4ee120]
mov edi, dword [0x4ee124]
test eax, eax
je 0x476039
push eax
call dword [0x4ebad0]
add esp, 4
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x476065
mov ecx, dword [esp + 0x48]
jg 0x47604b
test ecx, ecx
je 0x476065
mov eax, ebx
or eax, edi
je 0x47605b
cmp edi, edx
jl 0x476065
jg 0x47605b
cmp ebx, ecx
jbe 0x476065
push edx
push ecx
call fcn.00404270
add esp, 8
call fcn.004aead0
test eax, eax
je 0x47607a
or edi, 0xffffffff
or ebx, edi
push ebx
push edi
jmp 0x4761fe
mov eax, dword [0x4ee110]
test eax, eax
je 0x476092
push eax
call dword [0x4ebac8]
mov eax, dword [0x4ee110]
add esp, 4
mov edi, dword [0x4ee120]
mov ebx, dword [0x4ee124]
jmp 0x475fc9
test ecx, ecx
je 0x4760dd
lea edx, [esp + 0x48]
call fcn.004088b0
test eax, eax
jne 0x4760dd
cmp dword [esp + 0x4c], eax
jl 0x4760dd
mov eax, dword [esp + 0x48]
jg 0x4760c4
test eax, eax
jb 0x4760dd
mov ecx, 8
and eax, 0x7fffffff
cmp eax, ecx
cmova eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xa4]
jmp 0x4761fb
test ecx, ecx
je 0x47611c
lea edx, [esp + 0x48]
call fcn.004088b0
test eax, eax
jne 0x47611c
cmp dword [esp + 0x4c], eax
jl 0x47611c
mov eax, dword [esp + 0x48]
jg 0x47610d
test eax, eax
jb 0x47611c
mov ecx, dword [esp + 0xc]
and eax, 0x7fffffff
mov dword [ecx + 0x1ec], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1ec]
jmp 0x4761fb
test ecx, ecx
je 0x4761f1
lea edx, [esp + 0x7c]
mov dword [esp + 0x7c], 0
call fcn.004089c0
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x7c]
mov eax, dword [ecx + 0xc]
test edi, edi
jle 0x4761a6
test eax, eax
je 0x476165
push eax
call dword [0x4ebac8]
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1bc], 0x4b02b0
mov dword [ecx + 0x1c0], ecx
mov dword [ecx + 0x1c4], 0
mov dword [ecx + 0x1f0], 0
test eax, eax
je 0x47619e
push eax
call dword [0x4ebad0]
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [ecx + 0x1f0], edi
jmp 0x4761f5
test eax, eax
je 0x4761b8
push eax
call dword [0x4ebac8]
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1bc], 0
mov dword [ecx + 0x1c0], 0
mov dword [ecx + 0x1c4], 0
mov dword [ecx + 0x1f0], 0
test eax, eax
je 0x4761f5
push eax
call dword [0x4ebad0]
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x1f0]
cdq
push edx
push eax
mov ecx, esi
call fcn.00470f50
add esp, 8
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
call fcn.00404680
test ebx, ebx
je 0x476228
mov edx, ebx
mov ecx, dword [esp + 0xc]
call fcn.00404680
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004bf1a3
mov esp, ebp
pop ebp
ret