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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x583f80]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 0xc]
push esi
mov esi, dword [ebx + 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebx]
push edi
mov edi, edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], esi
test esi, esi
jne 0x46459c
cmp dword [ebx + 0x74], esi
jne 0x464583
test byte [ecx + 0x44], 8
jne 0x464583
mov byte [ebx + 0x17], 1
mov ecx, ebx
call fcn.0042d4c0
mov esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x48], esi
test esi, esi
je 0x466aa3
or dword [esi + 0x94], 0x40
lea ecx, [esp + 0x6c]
push ecx
push eax
mov edx, edi
mov ecx, ebx
mov dword [ebx + 0x2c], 2
call fcn.00450a00
mov ecx, eax
add esp, 8
mov dword [esp + 0x18], ecx
test ecx, ecx
js 0x466aa3
mov eax, dword [esp + 0x10]
mov edi, ecx
mov ebx, dword [eax + 0x10]
shl edi, 4
add ebx, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x4c], ebx
cmp ecx, 1
jne 0x4645fa
mov ecx, dword [esp + 0x14]
call fcn.00455d80
test eax, eax
jne 0x466aa3
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x6c]
mov ecx, eax
call fcn.00450800
mov dword [esp + 0x58], eax
test eax, eax
je 0x466aa3
cmp dword [ebp + 0x10], 0
je 0x464634
push dword [esp + 0x2c]
push 0x56b6b0
push dword [esp + 0x18]
call fcn.0040e130
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
jmp 0x464647
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
call fcn.00450800
mov ecx, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
jbe 0x464655
mov eax, dword [ebx]
jmp 0x464657
xor eax, eax
push eax
push ecx
push dword [esp + 0x60]
mov ecx, dword [esp + 0x20]
mov edx, 0x13
mov dword [esp + 0x40], eax
call fcn.0044f360
add esp, 0xc
test eax, eax
jne 0x466a89
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x8c], ecx
lea ecx, [esp + 0x84]
push ecx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x5c]
push 0xe
push dword [esp + 0x3c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x9c], 0
push eax
mov dword [eax + 0x18c], 0
call fcn.00495150
add esp, 0x10
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x464712
lea edx, [eax + 1]
mov ecx, esi
call fcn.0042f790
push 0xffffffffffffffff
push dword [esp + 0x88]
xor edx, edx
push 0
mov ecx, esi
call fcn.0042f850
mov edx, dword [esp + 0x90]
add esp, 0xc
mov ecx, esi
call fcn.004641c0
push dword [esp + 0x84]
call fcn.0040bcc0
add esp, 4
jmp 0x466a89
cmp eax, 0xc
je 0x464756
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x464747
push ecx
push 0x5686b4
push dword [esp + 0x1c]
call fcn.0040f070
add esp, 0xc
push dword [esp + 0x84]
call fcn.0040bcc0
mov eax, dword [esp + 0x70]
add esp, 4
mov ecx, dword [esp + 0x14]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x466a89
mov ecx, dword [esp + 0x58]
call fcn.00464330
mov dword [esp + 0x38], eax
test eax, eax
je 0x466a89
test byte [eax + 5], 1
je 0x464786
mov ecx, dword [esp + 0x14]
call fcn.00467d40
test eax, eax
jne 0x466a89
mov eax, dword [esp + 0x38]
mov cl, byte [eax + 5]
test cl, 2
jne 0x4647a8
test cl, 4
je 0x46479b
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x4647ac
mov edx, eax
mov ecx, esi
call fcn.00464070
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
movzx ecx, byte [eax + 4]
cmp ecx, 0x27
ja case.0x4647b9.3
jmp dword [ecx*4 + 0x466ab8]
mov edi, dword [esp + 0x18]
mov edx, edi
mov ecx, esi
call fcn.0042eb10
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x464801
mov eax, dword [esp + 0x14]
push ecx
add dword [eax + 0x2c], 2
push 0x564c8c
mov edx, 9
mov ecx, esi
call fcn.0042e0b0
mov dword [eax + 4], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x7c], 0xfffff830
jmp 0x466a86
mov ecx, eax
call fcn.0040fd00
mov ecx, eax
call fcn.004103d0
push dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
xor edx, edx
mov edi, eax
call fcn.00455f40
add esp, 4
mov edx, 0x6b
push edi
push 3
push dword [esp + 0x20]
mov ecx, esi
call fcn.0042d7e0
mov eax, dword [ebx + 0xc]
add esp, 0xc
mov dword [eax + 0x50], edi
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.00422280
jmp 0x466a89
mov edi, dword [ebx + 4]
test edx, edx
jne 0x46486f
test edi, edi
je 0x464868
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x20]
jmp 0x466a7c
xor eax, eax
jmp 0x466a7c
mov ecx, edx
call fcn.0040fd00
mov ecx, dword [esp + 0x10]
push 0
mov dword [ecx + 0x54], eax
push 0xffffffffffffffff
mov edx, eax
mov ecx, edi
call fcn.004223f0
add esp, 8
cmp eax, 7
jne 0x466a89
mov ecx, dword [esp + 0x10]
call fcn.0040c540
jmp 0x466a89
mov eax, dword [ebx + 4]
mov ebx, dword [esp + 0x1c]
or edx, 0xffffffff
mov dword [esp + 0x6c], eax
mov dword [esp + 0x28], edx
test ebx, ebx
je 0x4648e1
push str.fast
push ebx
call fcn.0040f1f0
add esp, 8
test eax, eax
jne 0x4648d1
lea edx, [eax + 2]
jmp 0x4648dd
xor dl, dl
mov ecx, ebx
call fcn.00463e00
movzx edx, al
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 0
jne 0x464923
test edx, edx
js 0x464923
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x464923
mov esi, dword [esp + 0x28]
xor edi, edi
mov ecx, dword [eax + 0x10]
mov edx, esi
mov ecx, dword [edi + ecx + 4]
call fcn.00422550
mov eax, dword [esp + 0x10]
inc ebx
lea edi, [edi + 0x10]
cmp ebx, dword [eax + 0x14]
jl 0x464900
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
call fcn.00422550
jmp 0x466a7c
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.00455e20
inc dword [ebx + 0x2c]
mov eax, dword [esp + 0x58]
mov edi, dword [ebx + 0x2c]
movzx eax, byte [eax]
cmp byte [eax + 0x5624b8], 0x70
jne 0x46497e
push edi
push dword [esp + 0x1c]
mov edx, 0xa7
mov ecx, esi
call fcn.0042d930
add esp, 8
mov edx, 0x51
push 1
push edi
mov ecx, esi
call fcn.0042d930
jmp 0x466a86
mov ecx, dword [esp + 0x1c]
call fcn.0040fd00
mov ecx, eax
call fcn.004103d0
push eax
push edi
push dword [esp + 0x20]
mov edx, 0xa8
mov ecx, esi
call fcn.0042d7e0
add esp, 0xc
mov edx, 0x51
push 1
push edi
mov ecx, esi
call fcn.0042d930
jmp 0x466a86
mov ecx, edx
mov edi, str.normal
call fcn.00463e20
mov edx, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
test eax, eax
jne 0x464a2e
cmp edx, 0xffffffff
jne 0x4649df
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x4b]
jmp 0x464a3b
test eax, eax
jne 0x464a2e
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x14], 2
jle 0x464a2b
mov edi, 0x20
mov ebx, eax
lea esi, [edi - 0x1e]
jmp 0x464a00
mov eax, dword [ebx + 0x10]
mov eax, dword [edi + eax + 4]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
call fcn.0041c050
inc esi
lea edi, [edi + 0x10]
cmp esi, dword [ebx + 0x14]
jl 0x464a00
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
mov edi, str.normal
mov byte [eax + 0x4b], dl
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
call fcn.0041c050
cmp eax, 1
mov edx, str.exclusive
cmovne edx, edi
mov ecx, esi
call fcn.004641c0
jmp 0x466a89
test edx, edx
je 0x464b0d
mov ecx, edx
call fcn.0040ef10
mov edi, eax
xor ebx, ebx
cmp ebx, 6
je 0x464b0d
mov ecx, dword [ebx*4 + 0x56623c]
test ecx, ecx
je 0x464b0d
push edi
push ecx
push dword [esp + 0x24]
call fcn.0040f270
add esp, 0xc
test eax, eax
je 0x464a92
inc ebx
jmp 0x464a65
cmp ebx, 0xffffffff
je 0x464b10
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
dec edi
js 0x464af8
mov edx, edi
shl edx, 4
mov dword [esp + 0x2c], edx
mov edi, edi
mov eax, dword [eax + 0x10]
cmp dword [edx + eax + 4], 0
je 0x464ae6
cmp edi, dword [esp + 0x18]
je 0x464ac6
cmp dword [ecx + 4], 0
jne 0x464ae6
mov edx, edi
mov ecx, esi
call fcn.0042eb10
push ebx
push 1
push edi
mov edx, 7
mov ecx, esi
call fcn.0042d7e0
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
sub edx, 0x10
dec edi
mov dword [esp + 0x2c], edx
jns 0x464ab0
push 1
push 1
mov edx, 0x51
mov ecx, esi
call fcn.0042d930
jmp 0x466a86
or ebx, 0xffffffff
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jne 0x464a9b
mov dword [esp + 0x18], 0
mov dword [ecx + 4], 1
jmp 0x464a9b
mov eax, dword [ebx + 4]
or ecx, 0xffffffff
mov eax, dword [eax + 4]
mov dword [esp + 0x74], ecx
mov edi, dword [eax]
mov eax, 0xfffffffe
mov dword [esp + 0x70], eax
test edx, edx
je 0x464b76
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x70]
call fcn.0040fa50
mov ecx, dword [esp + 0x74]
cmp ecx, 0xffffffff
jg 0x464b72
jl 0x464b6b
mov eax, dword [esp + 0x70]
cmp eax, 0xffffffff
jae 0x464b76
or eax, 0xffffffff
or ecx, eax
jmp 0x464b76
mov eax, dword [esp + 0x70]
push ecx
push eax
mov ecx, edi
call fcn.0041c1c0
push edx
push eax
mov ecx, esi
call fcn.00464110
add esp, 0x10
jmp 0x466a89
mov edi, dword [ebx + 4]
test edx, edx
jne 0x464ba3
mov ecx, edi
call fcn.00422630
jmp 0x466a7c
mov ecx, edx
call fcn.00463e60
mov ebx, eax
mov eax, dword [esp + 0x10]
mov edx, ebx
mov ecx, edi
mov byte [eax + 0x4c], bl
call fcn.004225c0
test eax, eax
jne 0x466a89
cmp ebx, 1
je 0x464bd2
cmp ebx, 2
jne 0x466a89
mov edi, dword [esi + 0x88]
push ecx
push 0x5625b8
mov edx, 5
mov ecx, esi
call fcn.0042e0b0
mov edx, dword [esp + 0x20]
lea ecx, [edi + 4]
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 0x5c], ecx
add esp, 8
mov ecx, esi
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
call fcn.0042eb10
jmp 0x466a89
test edx, edx
je 0x464c2f
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x6c]
call fcn.0040fb60
test eax, eax
je 0x464c2f
mov edi, dword [esp + 0x6c]
test edi, edi
jg 0x464c34
mov edi, bind
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push ebx
xor edx, edx
call fcn.00455f40
add esp, 4
mov edx, 0x46
push 1
push edi
mov ecx, esi
call fcn.0042d930
push ebx
mov edx, 0x3b
mov ecx, esi
call fcn.0042d8c0
add esp, 0xc
mov edx, 0x51
push 1
mov ecx, esi
mov edi, eax
call fcn.0042d8c0
add esp, 4
mov edx, 0x53
push 0xffffffffffffffff
push 1
mov ecx, esi
call fcn.0042d930
push edi
push 1
mov edx, 0x2f
mov ecx, esi
call fcn.0042d930
add esp, 0x10
mov edx, edi
mov ecx, esi
call fcn.0042e250
jmp 0x466a89
test edx, edx
jne 0x464cb8
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x466a7c
mov ecx, edx
call fcn.0040fd00
mov ecx, dword [ebx + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.00422280
jmp 0x466a89
test edx, edx
jne 0x464cf7
mov eax, dword [esp + 0x10]
test byte [eax + 0x1c], 0x20
je 0x464868
mov ecx, dword [ebx + 4]
call fcn.00422310
jmp 0x466a7c
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x2c]
mov ecx, edi
mov dword [esp + 0x2c], 1
call fcn.0040fb60
mov esi, dword [esp + 0x2c]
test eax, eax
je 0x464d20
mov ecx, dword [ebx + 4]
mov edx, esi
call fcn.00422310
test esi, esi
setne dl
mov ecx, edi
call fcn.00463e00
test al, al
mov eax, dword [esp + 0x10]
je 0x464d44
or dword [eax + 0x1c], 0x20
mov ecx, eax
call fcn.00464250
jmp 0x466a89
and dword [eax + 0x1c], 0xffffffdf
mov ecx, eax
call fcn.00464250
jmp 0x466a89
test edx, edx
je 0x464def
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x70]
call fcn.0040fa50
mov eax, dword [esp + 0x74]
test eax, eax
jg 0x464d90
jl 0x464d7b
mov edx, dword [esp + 0x70]
test edx, edx
jae 0x464d94
mov edx, dword [0x586b98]
mov eax, dword [0x586b9c]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
jmp 0x464d94
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
cmp dword [ecx + 4], 0
jne 0x464da8
mov dword [edi + 0x28], edx
mov dword [edi + 0x2c], eax
mov edi, dword [edi + 0x14]
dec edi
js 0x464def
mov esi, dword [esp + 0x10]
mov ebx, edi
shl ebx, 4
mov eax, dword [esi + 0x10]
mov eax, dword [ebx + eax + 4]
test eax, eax
je 0x464de5
cmp edi, dword [esp + 0x18]
je 0x464dce
cmp dword [ecx + 4], 0
jne 0x464de5
push dword [esp + 0x74]
mov ecx, eax
push edx
call fcn.00422360
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x28]
add esp, 8
sub ebx, 0x10
dec edi
jns 0x464db7
mov esi, dword [esp + 0x48]
lea eax, [esp + 0x70]
push eax
push 0x12
push dword [esp + 0x3c]
mov dword [esp + 0x7c], 0xffffffff
push dword [esp + 0x1c]
mov dword [esp + 0x84], 0xffffffff
call fcn.00495150
add esp, 0x10
test eax, eax
jne 0x464e2a
push dword [esp + 0x74]
push dword [esp + 0x74]
jmp 0x466a7f
cmp eax, 0xc
je 0x466a89
mov ecx, dword [esp + 0x14]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x466a89
test edx, edx
jne 0x464e53
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x48]
jmp 0x466a7c
mov ecx, dword [esp + 0x14]
call fcn.00464000
jmp 0x466a89
test edx, edx
jne 0x464e77
mov edx, dword [0x5885f0]
mov ecx, esi
call fcn.004641c0
jmp 0x466a89
cmp byte [edx], 0
je 0x464eb0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x6c]
mov eax, dword [eax]
push ecx
push 1
push edx
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x464e9d
cmp dword [esp + 0x6c], eax
jne 0x464eb0
push str.not_a_writable_directory
push dword [esp + 0x18]
call fcn.0040f070
jmp 0x466a86
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x48], 1
ja 0x464ec3
mov ecx, dword [esp + 0x14]
call fcn.00463fb0
push dword [0x5885f0]
call fcn.0040bcc0
mov eax, dword [esp + 0x20]
add esp, 4
cmp byte [eax], 0
je 0x464eef
push eax
push 0x5686b4
call fcn.0040e210
mov dword [0x5885f0], eax
jmp 0x466a86
mov dword [0x5885f0], 0
jmp 0x466a89
test edx, edx
jne 0x464f14
mov edx, dword [0x588584]
mov ecx, esi
call fcn.004641c0
jmp 0x466a89
cmp byte [edx], 0
je 0x464f42
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x6c]
mov eax, dword [eax]
push ecx
push 1
push edx
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x464e9d
cmp dword [esp + 0x6c], eax
je 0x464e9d
push dword [0x588584]
call fcn.0040bcc0
mov eax, dword [esp + 0x20]
add esp, 4
cmp byte [eax], 0
je 0x464f6e
push eax
push 0x5686b4
call fcn.0040e210
mov dword [0x588584], eax
jmp 0x466a86
mov dword [0x588584], 0
jmp 0x466a89
test edx, edx
jne 0x464f8b
movzx eax, byte [ebx + 8]
dec eax
jmp 0x466a7c
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x47], 0
jne 0x464fa8
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [esp + 0x18]
call fcn.0040f070
jmp 0x466a86
cmp dword [esp + 0x18], 1
je 0x466a89
mov ecx, dword [esp + 0x1c]
push 1
xor edx, edx
call fcn.00463d50
add esp, 4
mov ecx, 1
mov byte [ebx + 9], cl
inc eax
and eax, 7
cmove eax, ecx
mov ecx, dword [esp + 0x10]
mov byte [ebx + 8], al
call fcn.00464250
jmp 0x466a89
test edx, edx
jne 0x465009
mov edx, eax
mov ecx, esi
call fcn.00464070
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x10]
and eax, dword [ecx + 0x1c]
neg eax
sbb eax, eax
neg eax
jmp 0x466a7c
mov edi, dword [eax + 8]
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x47], 0
jne 0x46501c
and edi, 0xffffbfff
mov ecx, dword [esp + 0x1c]
xor dl, dl
call fcn.00463e00
test al, al
je 0x465034
mov eax, dword [esp + 0x10]
or dword [eax + 0x1c], edi
jmp 0x46505b
mov ecx, dword [esp + 0x10]
mov eax, edi
not eax
and dword [ecx + 0x1c], eax
cmp edi, 0x80000
jne 0x46505b
mov dword [ecx + 0x1d0], 0
mov dword [ecx + 0x1d4], 0
mov edx, 0x9f
mov ecx, esi
call fcn.0042d850
mov ecx, dword [esp + 0x10]
call fcn.00464250
jmp 0x466a89
test edx, edx
je 0x466a89
push dword [esp + 0x34]
mov edi, dword [esp + 0x18]
push edx
mov edx, 2
mov ecx, edi
call fcn.0044fba0
mov ebx, eax
add esp, 8
mov dword [esp + 0x4c], ebx
test ebx, ebx
je 0x466a89
mov ecx, ebx
mov dword [esp + 0x24], 0
call fcn.00450ac0
mov edx, dword [esp + 0x18]
mov ecx, edi
mov dword [esp + 0x2c], eax
mov dword [edi + 0x2c], 6
call fcn.00455e20
mov edx, ebx
mov ecx, edi
call fcn.00452d80
mov ecx, dword [ebx + 4]
movsx ebx, word [ebx + 0x2a]
xor edi, edi
mov dword [esp + 0x28], ecx
test ebx, ebx
jle 0x466a89
mov al, byte [ecx + 0xf]
mov byte [esp + 0x57], al
test al, 2
je 0x4650fa
inc dword [esp + 0x24]
jmp 0x4651a3
test al, 1
jne 0x465102
xor edx, edx
jmp 0x465137
cmp dword [esp + 0x2c], 0
mov edx, 1
je 0x465137
cmp ebx, edx
jl 0x465137
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
lea esp, [esp]
movsx eax, word [ecx]
cmp eax, edi
je 0x46512f
inc edx
add ecx, 2
cmp edx, ebx
jle 0x465120
mov ecx, dword [esp + 0x28]
mov al, byte [esp + 0x57]
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x465147
mov ebx, dword [ebx + 8]
mov dword [esp + 0x40], ebx
jmp 0x46514f
mov dword [esp + 0x40], 0
test al, 4
jne 0x46515a
mov ebx, 0x5618f4
jmp 0x465177
mov ebx, dword [ecx]
mov ecx, ebx
lea eax, [ecx + 1]
mov dword [esp + 0x6c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x465165
sub ecx, dword [esp + 0x6c]
inc ecx
add ebx, ecx
mov ecx, dword [esp + 0x28]
xor eax, eax
cmp byte [ecx + 0xc], al
push edx
push dword [esp + 0x44]
setne al
push eax
push ebx
push dword [ecx]
mov eax, edi
sub eax, dword [esp + 0x38]
push eax
push str.issisi
push 1
push esi
call fcn.0042da30
mov ecx, dword [esp + 0x4c]
add esp, 0x24
mov eax, dword [esp + 0x4c]
inc edi
movsx ebx, word [eax + 0x2a]
add ecx, 0x10
mov dword [esp + 0x28], ecx
cmp edi, ebx
jl 0x4650e6
jmp 0x466a89
test edx, edx
je 0x466a89
push dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
call fcn.0044fd50
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x466a89
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 8], 0
je 0x465201
movzx eax, word [ebx + 0x34]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov dword [eax + 0x2c], 6
jmp 0x465214
movzx eax, word [ebx + 0x32]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov dword [eax + 0x2c], 3
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x6c], eax
call fcn.00455e20
xor edi, edi
cmp dword [esp + 0x24], edi
jle 0x466a89
mov eax, dword [ebx + 4]
movzx edx, word [eax + edi*2]
test dx, dx
jns 0x465244
xor eax, eax
jmp 0x465253
mov eax, dword [esp + 0x6c]
movsx ecx, dx
mov eax, dword [eax + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
push eax
movsx eax, dx
push eax
push edi
push str.iisX
push 1
push esi
call fcn.0042da30
mov eax, dword [esp + 0x50]
add esp, 0x18
cmp dword [eax + 8], 0
je 0x46529d
movzx eax, word [ebx + 0x32]
xor ecx, ecx
cmp edi, eax
mov eax, dword [ebx + 0x20]
setl cl
push ecx
push dword [eax + edi*4]
mov eax, dword [ebx + 0x1c]
movzx eax, byte [eax + edi]
push eax
push str.isiX
push 4
push esi
call fcn.0042da30
add esp, 0x18
mov eax, dword [esp + 0x14]
mov edx, 0x51
push dword [eax + 0x2c]
mov ecx, esi
push 1
call fcn.0042d930
inc edi
add esp, 8
cmp edi, dword [esp + 0x24]
jl 0x465234
jmp 0x466a89
test edx, edx
je 0x466a89
push dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
call fcn.0044fa20
mov edi, eax
add esp, 4
test edi, edi
je 0x466a89
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, eax
mov dword [eax + 0x2c], 5
call fcn.00455e20
mov edi, dword [edi + 8]
xor ebx, ebx
test edi, edi
je 0x466a89
mov dword [esp + 0x70], 0x56b728
mov dword [esp + 0x74], 0x56b72c
mov dword [esp + 0x78], 0x56b120
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 + 0x74]
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.0042da30
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x465322
jmp 0x466a89
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [eax + 0x2c], 3
cmp dword [edx + 0x14], edi
jle 0x466a89
xor ebx, ebx
lea ebx, [ebx]
mov edx, dword [edx + 0x10]
mov ecx, dword [edx + ebx + 4]
test ecx, ecx
je 0x4653a5
call fcn.0042a8c0
push eax
push dword [edx + ebx]
push edi
push 0x56b738
push 1
push esi
call fcn.0042da30
add esp, 0x18
mov edx, dword [esp + 0x10]
inc edi
add ebx, 0x10
cmp edi, dword [edx + 0x14]
jl 0x465380
jmp 0x466a89
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [eax + 0x2c], 2
mov edi, dword [edx + 0x17c]
xor ebx, ebx
test edi, edi
je 0x466a89
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x56b73c
push 1
push esi
call fcn.0042da30
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x4653d6
jmp 0x466a89
test edx, edx
je 0x466a89
push dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
call fcn.0044fa20
add esp, 4
mov dword [esp + 0x6c], eax
test eax, eax
je 0x466a89
mov edi, dword [eax + 0x10]
test edi, edi
je 0x466a89
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x24], 0
mov dword [eax + 0x2c], 8
call fcn.00455e20
xor eax, eax
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x4654b5
lea edx, [edi + 0x24]
mov dword [esp + 0x2c], edx
jmp 0x465460
mov cl, byte [edi + 0x19]
push str.NONE
call fcn.004642e0
mov cl, byte [edi + 0x1a]
push eax
call fcn.004642e0
mov ecx, dword [edx]
push eax
push dword [edx + 4]
mov eax, dword [esp + 0x7c]
add ecx, ecx
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push dword [edi + 8]
push ebx
push dword [esp + 0x40]
push str.iissssss
push 1
push esi
call fcn.0042da30
mov edx, dword [esp + 0x58]
inc ebx
add edx, 8
add esp, 0x2c
mov dword [esp + 0x2c], edx
cmp ebx, dword [edi + 0x14]
jl 0x465460
mov eax, dword [esp + 0x24]
mov edi, dword [edi + 4]
inc eax
mov dword [esp + 0x24], eax
test edi, edi
jne 0x465447
jmp 0x466a89
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0x2c]
lea ecx, [eax + 1]
mov dword [esp + 0x38], ecx
lea ecx, [eax + 5]
lea ebx, [eax + 6]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], ecx
mov ecx, eax
mov dword [esp + 0x24], ebx
mov dword [eax + 0x2c], ebx
call fcn.00455e20
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x466a89
lea ebx, [ebx]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x465531
push dword [esp + 0x34]
xor edx, edx
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0044fba0
add esp, 8
mov edi, eax
xor eax, eax
jmp 0x465536
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], edi
test edi, edi
je 0x46588d
cmp dword [edi + 0x10], 0
je 0x46588d
push dword [edi]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push dword [edi + 0x1c]
call fcn.0044f3f0
movsx eax, word [edi + 0x2a]
mov ecx, dword [esp + 0x20]
add eax, ebx
add esp, 0xc
cmp eax, dword [ecx + 0x2c]
jle 0x465579
mov dword [ecx + 0x2c], eax
push 0x6d
push edi
push dword [esp + 0x20]
xor edx, edx
call fcn.0045ead0
mov edx, dword [esp + 0x44]
add esp, 0xc
push dword [edi]
mov ecx, esi
call fcn.0042da10
mov ebx, dword [edi + 0x10]
add esp, 4
mov eax, 1
mov dword [esp + 0x28], eax
test ebx, ebx
je 0x46566a
mov edi, edi
push dword [esp + 0x34]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
call fcn.0044fa20
mov edi, eax
add esp, 4
test edi, edi
je 0x465652
push dword [edi]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push dword [edi + 0x1c]
mov dword [esp + 0x2c], 0
call fcn.0044f3f0
mov ecx, dword [esp + 0x20]
add esp, 0xc
lea eax, [esp + 0x20]
push 0
push eax
push ebx
mov edx, edi
call fcn.0045c1b0
add esp, 0xc
test eax, eax
jne 0x466a89
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x46562b
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
push 0x6d
push edi
push dword [esp + 0x20]
call fcn.0045ead0
add esp, 0xc
jmp 0x465652
push dword [esp + 0x18]
mov edx, 0x6d
push dword [eax + 0x2c]
mov ecx, esi
push dword [esp + 0x30]
call fcn.0042d7e0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
add esp, 0xc
call fcn.0042e740
mov eax, dword [esp + 0x28]
mov ebx, dword [ebx + 4]
inc eax
mov dword [esp + 0x28], eax
test ebx, ebx
jne 0x4655b0
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x28], eax
jge 0x465676
mov dword [ecx + 0x28], eax
push 0
mov edx, 0x24
mov ecx, esi
call fcn.0042d8c0
mov ebx, dword [edi + 0x10]
add esp, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], 1
mov dword [esp + 0x3c], ebx
test ebx, ebx
je 0x465867
push dword [esp + 0x34]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
call fcn.0044fa20
add esp, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x30], 0
test eax, eax
je 0x4656e6
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
mov edx, eax
call fcn.0045c1b0
add esp, 0xc
mov ecx, esi
call fcn.0042dec0
xor edi, edi
mov dword [esp + 0x28], eax
cmp dword [ebx + 0x14], edi
jle 0x465754
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x24]
add ecx, 0x24
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x465714
mov eax, dword [eax + edi*4]
jmp 0x465716
mov eax, dword [ecx]
mov edx, dword [esp + 0x50]
push ebx
push eax
push 0
mov ecx, esi
call fcn.00447750
add esp, 0xc
mov edx, 0x32
push dword [esp + 0x28]
mov ecx, esi
push ebx
call fcn.0042d930
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
inc edi
add ecx, 8
add esp, 8
inc ebx
mov dword [esp + 0x2c], ecx
cmp edi, dword [eax + 0x14]
jl 0x465707
mov ebx, eax
mov edx, dword [esp + 0x20]
test edx, edx
je 0x4657a5
push dword [ebx + 0x14]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.0045ebd0
mov edi, dword [esp + 0x74]
add esp, 4
mov edx, 0x66
push eax
push edi
push dword [ebx + 0x14]
mov ecx, esi
push dword [esp + 0x34]
call fcn.0042dc00
add esp, 0x14
mov edx, 0x1d
push 0
push edi
mov edi, dword [esp + 0x30]
push edi
push dword [esp + 0x54]
mov ecx, esi
call fcn.0042ddb0
add esp, 0x10
jmp 0x4657e0
cmp dword [esp + 0x4c], 0
je 0x4657dc
mov eax, dword [esi + 0x88]
push dword [esp + 0x24]
add eax, 2
push eax
push dword [esp + 0x50]
mov edx, 0x1e
mov ecx, esi
call fcn.0042d7e0
mov edi, dword [esp + 0x34]
add esp, 0xc
mov edx, edi
mov ecx, esi
call fcn.0042d9a0
jmp 0x4657e0
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
mov ecx, esi
test byte [eax + 0x24], 0x20
mov eax, dword [esp + 0x38]
mov edx, 0x81
je 0x4657fa
mov edx, 0x49
inc eax
push eax
push 0
call fcn.0042d930
mov eax, dword [esp + 0x50]
add esp, 8
dec eax
push eax
push dword [ebx + 8]
mov eax, dword [esp + 0x40]
push 0x56b754
add eax, 2
push eax
push esi
call fcn.0042da30
add esp, 0x14
mov edx, 0x51
push 4
push dword [esp + 0x3c]
mov ecx, esi
call fcn.0042d930
add esp, 8
mov edx, edi
mov ecx, esi
call fcn.0042df10
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
call fcn.0040bdb0
mov ebx, dword [ebx + 4]
inc dword [esp + 0x48]
mov dword [esp + 0x3c], ebx
test ebx, ebx
jne 0x4656a2
mov eax, dword [esp + 0x40]
inc eax
push eax
push 0
mov edx, 5
mov ecx, esi
call fcn.0042d930
mov edx, dword [esp + 0x48]
add esp, 8
mov ecx, esi
call fcn.0042e250
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x465510
jmp 0x466a89
test edx, edx
je 0x466a89
mov ecx, dword [esp + 0x1c]
xor dl, dl
call fcn.00463e00
mov ecx, dword [esp + 0x10]
movzx edx, al
call fcn.0045c000
jmp 0x466a89
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x14]
movzx eax, byte [eax]
xor ecx, ecx
cmp byte [eax + 0x5624b8], 0x71
mov eax, dword [esp + 0x20]
sete cl
mov ebx, 0x64
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ecx
or ecx, 0xffffffff
cmp dword [eax], 0
mov eax, dword [esp + 0x18]
cmove eax, ecx
mov dword [esp + 0x18], eax
mov dword [edi + 0x2c], 6
test edx, edx
je 0x465925
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x44]
call fcn.0040fb60
mov ebx, dword [esp + 0x44]
mov eax, 0x64
test ebx, ebx
cmovle ebx, eax
mov dword [esp + 0x6c], ebx
lea eax, [ebx - 1]
push 1
push eax
mov edx, 0x46
mov ecx, esi
call fcn.0042d930
mov eax, dword [esp + 0x18]
xor edx, edx
add esp, 8
mov dword [esp + 0x28], edx
cmp dword [eax + 0x14], edx
jle 0x466546
mov ecx, dword [esp + 0x18]
xor ebx, ebx
mov dword [esp + 0x44], ebx
test ecx, ecx
js 0x465963
cmp edx, ecx
jne 0x466534
mov ecx, edi
call fcn.00455e20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
shl ecx, 4
xor edx, edx
mov eax, dword [ecx + eax + 0xc]
add eax, 8
mov dword [esp + 0x4c], ecx
mov edi, dword [eax + 8]
mov dword [esp + 0x30], eax
test edi, edi
je 0x4659bb
mov eax, dword [edi + 8]
test byte [eax + 0x24], 0x20
jne 0x46599a
inc edx
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
je 0x4659ac
mov eax, dword [eax + 0x14]
inc edx
inc ecx
test eax, eax
jne 0x4659a3
mov edi, dword [edi]
cmp ecx, ebx
cmovg ebx, ecx
test edi, edi
jne 0x465990
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x10]
lea eax, [edx*4 + 4]
push 0
push eax
call fcn.0040c0f0
mov edi, eax
add esp, 8
test edi, edi
je 0x466542
mov ebx, dword [esp + 0x30]
xor edx, edx
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x465a1b
jmp 0x4659f0
mov ecx, dword [ebx + 8]
test byte [ecx + 0x24], 0x20
jne 0x465a00
mov eax, dword [ecx + 0x1c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x465a15
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x465a07
mov ebx, dword [ebx]
test ebx, ebx
jne 0x4659f0
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
mov dword [edi], edx
add ecx, 8
cmp dword [ebx + 0x2c], ecx
push 0xfffffffffffffff1
cmovg ecx, dword [ebx + 0x2c]
push edi
push 1
push edx
mov dword [ebx + 0x2c], ecx
push 2
mov edx, 0x94
mov ecx, esi
mov byte [ebx + 0x13], 0
mov dword [ebx + 0x1c], 0
call fcn.0042dc00
mov eax, dword [esp + 0x3c]
movzx edx, al
add esp, 0x14
mov ecx, esi
call fcn.0042e230
push 2
mov edx, 0x32
call fcn.0042d8c0
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x4c]
push 0xfffffffffffffff9
push ecx
mov ecx, dword [edx + 0x10]
push dword [eax + ecx]
push str._in_database__s__n
push edx
call fcn.0040e130
add esp, 0x10
mov edx, 0x6a
push eax
push 0
push 3
push 0
mov ecx, esi
call fcn.0042dc00
add esp, 0x14
mov edx, 0x65
push 3
push 3
push 2
mov ecx, esi
call fcn.0042d7e0
add esp, 0xc
mov ecx, esi
call fcn.00464400
mov edx, edi
mov ecx, esi
call fcn.0042e250
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + 8]
mov dword [esp + 0x4c], ebx
test ebx, ebx
je 0x466524
mov ebx, dword [ebx + 8]
mov dword [esp + 0x20], ebx
cmp dword [ebx + 0x1c], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x38], 0xffffffff
jl 0x466512
test byte [ebx + 0x24], 0x20
jne 0x465b11
mov dword [esp + 0x24], 0
jmp 0x465b1c
mov ecx, ebx
call fcn.00450ac0
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x54]
push eax
push 0
push 1
push 0
push 0x6d
mov edx, ebx
call fcn.004624a0
push 7
push 0
mov edx, 0x46
mov ecx, esi
call fcn.0042d930
mov edi, dword [ebx + 8]
add esp, 0x20
test edi, edi
je 0x465b72
mov ebx, 8
push ebx
push 0
mov edx, 0x46
mov ecx, esi
call fcn.0042d930
mov edi, dword [edi + 0x14]
add esp, 8
inc ebx
test edi, edi
jne 0x465b58
mov ebx, dword [esp + 0x50]
push 0
push ebx
mov edx, 0x24
mov ecx, esi
call fcn.0042d930
push 1
push 7
mov edx, 0x53
mov ecx, esi
call fcn.0042d930
mov edi, dword [esp + 0x30]
add esp, 0x10
cmp dword [esp + 0x40], 0
mov dword [esp + 0x70], eax
jne 0x465bcb
movsx ecx, word [edi + 0x2a]
dec ecx
push 3
push ecx
push ebx
mov edx, 0x5a
mov ecx, esi
call fcn.0042d7e0
add esp, 0xc
mov edx, 0x80
mov ecx, esi
call fcn.0042e230
xor eax, eax
xor ebx, ebx
cmp ax, word [edi + 0x2a]
jge 0x465c8c
xor ecx, ecx
mov dword [esp + 0x30], ecx
nop
movsx eax, word [edi + 0x28]
cmp ebx, eax
je 0x465c78
mov eax, dword [edi + 4]
cmp byte [ecx + eax + 0xc], 0
je 0x465c78
push 3
push ebx
push dword [esp + 0x58]
mov edx, edi
mov ecx, esi
call fcn.00447750
add esp, 0xc
mov edx, 0x80
mov ecx, esi
call fcn.0042e230
push 3
mov edx, 0x33
call fcn.0042d8c0
mov edx, dword [esp + 0x24]
add esp, 4
mov ecx, dword [edx + 4]
mov edi, eax
mov eax, dword [esp + 0x30]
push dword [eax + ecx]
push dword [edx]
push str.NULL_value_in__s._s
push dword [esp + 0x1c]
call fcn.0040e130
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
mov edx, 0x6a
mov ecx, esi
call fcn.0042dc00
add esp, 0x24
mov ecx, esi
call fcn.00464400
mov edx, edi
mov ecx, esi
call fcn.0042e250
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
movsx eax, word [edi + 0x2a]
inc ebx
add ecx, 0x10
mov dword [esp + 0x30], ecx
cmp ebx, eax
jl 0x465be0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x465dc6
mov ebx, dword [esp + 0x10]
test dword [ebx + 0x1c], 0x200
jne 0x465dc6
push 0
mov ecx, ebx
call fcn.00443d90
add esp, 4
cmp byte [ebx + 0x49], 0
mov edi, eax
mov dword [esp + 0x30], edi
jne 0x465db5
mov ecx, esi
call fcn.0042dec0
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x44], ebx
call fcn.0042dec0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x14]
inc ecx
mov dword [edx + 0x38], ecx
mov edi, dword [edi]
dec edi
mov dword [esp + 0x3c], eax
test edi, edi
jle 0x465d26
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x44]
lea eax, [edi + edi*2]
add ebx, 4
lea ebx, [ebx + eax*8]
push 0
push esi
push dword [ebx]
push edx
call fcn.00449540
mov edx, dword [esp + 0x24]
dec edi
add esp, 0x10
lea ebx, [ebx - 0x18]
test edi, edi
jg 0x465d00
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
push 0x10
push eax
push dword [edi + 4]
push edx
call fcn.00449140
mov eax, dword [esi + 0xc]
add esp, 0x10
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x465d54
lea eax, [ebx*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov dword [eax + 0x38], 0
mov eax, dword [esp + 0x20]
push dword [eax]
push str.CHECK_constraint_failed_in__s
push ebx
call fcn.0040e130
add esp, 0xc
mov edx, 0x6a
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
mov ecx, esi
call fcn.0042dc00
add esp, 0x14
mov ecx, esi
call fcn.00464400
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x465db5
mov eax, dword [esp + 0x3c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
test edi, edi
je 0x465dc2
mov edx, edi
mov ecx, ebx
call fcn.004447d0
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x46626f
mov eax, dword [edi + 8]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x46626f
mov ecx, dword [esp + 0x2c]
mov eax, 8
sub eax, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], eax
mov edi, dword [esi + 0xc]
mov ebx, dword [edi + 0x3c]
lea eax, [ebx + 1]
mov dword [edi + 0x3c], eax
lea eax, [ebx - 1]
test ebx, eax
jne 0x465e25
mov edx, dword [edi + 0x40]
mov ecx, dword [edi]
lea eax, [ebx*8 + 4]
push 0
push eax
call fcn.0040c2b0
mov ecx, dword [esp + 0x3c]
add esp, 8
mov dword [edi + 0x40], eax
mov eax, dword [edi + 0x40]
test eax, eax
je 0x465e33
mov dword [eax + ebx*4], 0xffffffff
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x24], edi
je 0x4662a6
push dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
push dword [esp + 0x60]
lea eax, [esp + 0x6c]
push eax
push 0
push 0
push dword [esp + 0x64]
mov edx, edi
call fcn.00458890
mov ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0x5c]
push 1
push ecx
mov edx, 0x53
mov ecx, esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x7c], edi
call fcn.0042d930
movzx ecx, word [edi + 0x34]
push ecx
push dword [esp + 0x5c]
or eax, 0xffffffff
sub eax, ebx
push eax
push dword [esp + 0x60]
mov edx, 0x1d
mov ecx, esi
call fcn.0042ddb0
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
add esp, 0x30
mov edi, eax
cmp dword [ecx + 0x30], edx
jg 0x465ecb
push 0
push 3
push 0
mov edx, 0x6a
mov ecx, esi
call fcn.0042d7a0
add esp, 0xc
mov edx, eax
jmp 0x465f01
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4], 0x6a
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 + 0x49], 0
je 0x465f1a
push str.row
xor edx, edx
call fcn.0042e400
add esp, 4
jmp 0x465f3f
test edx, edx
jns 0x465f25
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
push 0
lea edx, [eax + ecx*4]
push str.row
mov ecx, esi
call fcn.0042e590
add esp, 8
push 3
push 3
push 7
mov edx, 0x65
mov ecx, esi
call fcn.0042d7e0
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
add esp, 0xc
cmp dword [eax + 0x30], edx
jg 0x465f7b
push 0
push 4
push 0
mov edx, 0x6a
mov ecx, esi
call fcn.0042d7a0
add esp, 0xc
mov edx, eax
jmp 0x465fb1
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4], 0x6a
mov dword [eax + ecx*4 + 4], 0
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]
cmp byte [ecx + 0x49], 0
je 0x465fca
push str._missing_from_index
xor edx, edx
call fcn.0042e400
add esp, 4
jmp 0x465fef
test edx, edx
jns 0x465fd5
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
push 0
lea edx, [eax + ecx*4]
push str._missing_from_index
mov ecx, esi
call fcn.0042e590
add esp, 8
push 3
push 3
push 4
mov edx, 0x65
mov ecx, esi
call fcn.0042d7e0
mov ebx, dword [esp + 0x48]
add esp, 0xc
mov edx, 0x6a
push 0
push dword [ebx]
mov ecx, esi
push 0
push 4
push 0
call fcn.0042dc00
add esp, 0x14
mov edx, 0x65
push 3
push 3
push 4
mov ecx, esi
mov dword [esp + 0x74], eax
call fcn.0042d7e0
add esp, 0xc
mov ecx, esi
call fcn.00464400
mov edx, dword [esi + 0x88]
mov dword [esp + 0x60], eax
test edi, edi
jns 0x466052
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x466061
mov eax, 0x5890ec
jmp 0x46606a
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
cmp byte [ebx + 0x36], 0
je 0x4661fd
mov ecx, esi
call fcn.0042dec0
mov edx, eax
xor eax, eax
xor edi, edi
mov dword [esp + 0x30], edx
cmp ax, word [ebx + 0x32]
jae 0x4660cf
mov edi, edi
mov eax, dword [ebx + 4]
movsx ecx, word [eax + edi*2]
test ecx, ecx
js 0x4660ab
mov eax, dword [esp + 0x20]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
jne 0x4660c6
mov eax, dword [esp + 0x38]
push edx
add eax, edi
push eax
mov edx, 0x32
mov ecx, esi
call fcn.0042d930
mov edx, dword [esp + 0x38]
add esp, 8
movzx eax, word [ebx + 0x32]
inc edi
cmp edi, eax
jl 0x466090
push dword [esp + 0x34]
mov edx, 5
mov ecx, esi
call fcn.0042d8c0
mov edx, dword [esp + 0x34]
add esp, 4
mov ecx, esi
mov edi, eax
call fcn.0042d9a0
mov edx, dword [esi + 0x88]
test edi, edi
jns 0x4660fc
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x46610b
mov eax, 0x5890ec
jmp 0x466114
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x30]
mov dword [eax + 8], edx
movzx eax, word [ebx + 0x32]
push eax
push dword [esp + 0x3c]
mov edx, 0x26
push edi
push dword [esp + 0x40]
mov ecx, esi
call fcn.0042ddb0
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
add esp, 0x10
cmp dword [eax + 0x30], edx
jg 0x46615f
push 0
push 3
push 0
mov edx, 0x6a
mov ecx, esi
call fcn.0042d7a0
add esp, 0xc
mov edx, eax
jmp 0x466199
mov ebx, dword [esp + 0x3c]
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4], 0x6a
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 + 0x49], 0
je 0x4661b2
push str.non_unique_entry_in_index
xor edx, edx
call fcn.0042e400
add esp, 4
jmp 0x4661d7
test edx, edx
jns 0x4661bd
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
push 0
lea edx, [eax + ecx*4]
push str.non_unique_entry_in_index
mov ecx, esi
call fcn.0042e590
add esp, 8
mov edx, dword [esp + 0x68]
mov ecx, esi
call fcn.0042d9a0
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x4661fd
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, dword [esp + 0x60]
mov edx, dword [esi + 0x88]
test ecx, ecx
jns 0x46620e
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x46621d
mov eax, 0x5890ec
jmp 0x466226
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x64]
mov dword [eax + 8], edx
test edi, edi
je 0x466253
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x466253
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [edx + 0x88]
mov dword [ecx], eax
mov ecx, dword [esp + 0x34]
mov ebx, dword [ebx + 0x14]
inc ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], ecx
test ebx, ebx
jne 0x465df4
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x70]
push edi
push dword [esp + 0x54]
mov edx, 5
mov ecx, esi
call fcn.0042d930
mov edx, dword [esi + 0x88]
lea ecx, [edi - 1]
add esp, 8
test ecx, ecx
jns 0x466297
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x4662ac
mov eax, 0x5890ec
jmp 0x4662b5
mov ebx, dword [esp + 0x3c]
jmp 0x466257
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
test ebx, ebx
jne 0x466512
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x4662e3
push ebx
push 2
push ebx
lea edx, [ebx + 0x6a]
mov ecx, esi
call fcn.0042d7a0
add esp, 0xc
mov edx, eax
jmp 0x466319
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4], 0x6a
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x466332
push str.wrong__of_entries_in_index
xor edx, edx
call fcn.0042e400
add esp, 4
jmp 0x466357
test edx, edx
jns 0x46633d
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
push 0
lea edx, [eax + ecx*4]
push str.wrong__of_entries_in_index
mov ecx, esi
call fcn.0042e590
add esp, 8
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
test eax, eax
je 0x466512
mov ecx, dword [esp + 0x24]
mov ebx, 8
cmp ecx, eax
je 0x466502
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4663a8
mov eax, dword [esp + 0x2c]
push 0
add eax, 0xfffffff8
add eax, ebx
push 3
push eax
mov edx, 0x68
mov ecx, esi
call fcn.0042d7a0
add esp, 0xc
jmp 0x4663e1
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff8
add eax, ebx
mov dword [ecx], 0x68
mov dword [ecx + 4], eax
mov dword [ecx + 8], 3
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
cmp dword [eax + 0x30], edi
jg 0x466407
push 3
push 0
push ebx
mov edx, 0x35
mov ecx, esi
call fcn.0042d7a0
add esp, 0xc
mov edi, eax
jmp 0x466439
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 4], ebx
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 + 0x88]
test eax, eax
jle 0x466453
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov edx, 0x90
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x30]
push 0
push dword [eax]
mov edx, 0x6a
push 0
push 4
push 0
mov ecx, esi
call fcn.0042dc00
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
add esp, 0x14
cmp dword [eax + 0x30], ecx
jg 0x466495
push 3
push 2
push 4
mov edx, 0x65
mov ecx, esi
call fcn.0042d7a0
add esp, 0xc
jmp 0x4664cb
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x65
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.00464400
mov edx, dword [esi + 0x88]
test edi, edi
jns 0x4664df
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x4664ee
mov eax, 0x5890ec
jmp 0x4664f7
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x14]
inc ebx
mov dword [esp + 0x30], eax
test eax, eax
jne 0x466373
mov ebx, dword [esp + 0x4c]
mov ebx, dword [ebx]
mov dword [esp + 0x4c], ebx
test ebx, ebx
jne 0x465ae0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc edx
mov dword [esp + 0x28], edx
cmp edx, dword [eax + 0x14]
jl 0x465951
mov ebx, dword [esp + 0x6c]
push ecx
push 0x561b8c
mov edx, 7
mov ecx, esi
call fcn.0042e0b0
mov edx, eax
add esp, 8
test edx, edx
je 0x46658c
mov ecx, 1
sub ecx, ebx
mov dword [edx + 8], ecx
mov byte [edx + 0x29], 0xff
mov dword [edx + 0x38], 0x56b800
mov byte [edx + 0x65], 0xff
mov eax, dword [str.database_disk_image_is_malformed]
mov ecx, str.unknown_error
test eax, eax
cmovne ecx, eax
mov dword [edx + 0x74], ecx
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
mov ecx, 0x5890ec
jne 0x4665a2
mov ecx, dword [esi + 0x58]
lea eax, [edx - 2]
mov dword [ecx + 0xc], eax
jmp 0x466a89
test edx, edx
jne 0x4665dd
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.00467d40
test eax, eax
jne 0x466a89
mov eax, dword [ebx]
mov ecx, esi
movzx edx, byte [eax + 0x46]
mov edx, dword [edx*8 + 0x565dd8]
call fcn.004641c0
jmp 0x466a89
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x10]
mov eax, dword [edi + 0xc]
movzx eax, word [eax + 0x4e]
test al, 1
je 0x4665f7
test al, 4
je 0x466a89
mov eax, dword [str.UTF8]
mov esi, 0x565dd8
test eax, eax
je 0x466649
mov ecx, dword [esp + 0x1c]
mov edx, eax
call fcn.0040f220
test eax, eax
je 0x466620
mov eax, dword [esi + 8]
add esi, 8
test eax, eax
jne 0x466605
jmp 0x466645
mov al, byte [esi + 4]
movzx ecx, al
test al, al
jne 0x46662f
mov ecx, 2
mov eax, dword [esp + 0x10]
mov byte [eax + 0x46], cl
mov eax, dword [edi + 0xc]
mov byte [eax + 0x4d], cl
cmp dword [esi], 0
jne 0x466a89
mov edx, dword [esp + 0x1c]
push edx
push str.unsupported_encoding:__s
push dword [esp + 0x1c]
call fcn.0040f070
add esp, 0xc
jmp 0x466a89
mov ebx, dword [esp + 0x18]
mov edi, dword [eax + 8]
mov edx, ebx
mov ecx, esi
call fcn.0042eb10
cmp dword [esp + 0x1c], 0
je 0x4666b2
mov eax, dword [esp + 0x38]
test byte [eax + 5], 8
jne 0x4666b2
push ecx
push 0x566ce8
mov edx, 2
mov ecx, esi
call fcn.0042e0b0
mov ecx, dword [esp + 0x24]
mov esi, eax
add esp, 8
mov dword [esi + 4], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], edi
call fcn.0040fd00
mov dword [esi + 0x20], eax
jmp 0x466a89
push ecx
push 0x565dcc
mov edx, 3
mov ecx, esi
call fcn.0042e0b0
add esp, 8
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x20], edi
and dword [esi + 0x94], 0xffffffbf
jmp 0x466a89
mov eax, dword [esp + 0x14]
xor edi, edi
push edi
mov dword [eax + 0x2c], 1
call fcn.00495720
add esp, 4
test eax, eax
je 0x46672c
push 0
push eax
push 0
push 1
push 0
mov edx, 0x6a
mov ecx, esi
inc edi
call fcn.0042dc00
add esp, 0x14
mov edx, 0x51
push 1
push 1
mov ecx, esi
call fcn.0042d930
push edi
call fcn.00495720
add esp, 0xc
test eax, eax
jne 0x4666f6
and dword [esi + 0x94], 0xffffffbf
jmp 0x466a89
mov eax, dword [esp + 0x20]
mov ebx, 0xa
cmp dword [eax], 0
cmovne ebx, dword [esp + 0x18]
xor edi, edi
test edx, edx
je 0x466795
mov ecx, dword [esp + 0x1c]
mov edx, str.full
call fcn.0040f220
test eax, eax
jne 0x466766
lea edi, [eax + 1]
jmp 0x466795
mov ecx, dword [esp + 0x1c]
mov edx, str.restart
call fcn.0040f220
test eax, eax
jne 0x46677d
lea edi, [eax + 2]
jmp 0x466795
mov ecx, dword [esp + 0x1c]
mov edx, str.truncate
call fcn.0040f220
mov ecx, 3
test eax, eax
cmove edi, ecx
mov eax, dword [esp + 0x14]
push 1
push edi
push ebx
mov edx, 6
mov ecx, esi
mov dword [eax + 0x2c], 3
call fcn.0042d7e0
add esp, 0xc
mov edx, 0x51
push 3
push 1
mov ecx, esi
call fcn.0042d930
jmp 0x466a86
test edx, edx
je 0x4667e0
mov ecx, edx
call fcn.0040fd00
push eax
push dword [esp + 0x14]
call fcn.00493610
add esp, 8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xe8], 0x4935d0
jne 0x464868
mov eax, dword [eax + 0xec]
jmp 0x466a7c
push dword [esp + 0x10]
call fcn.00491db0
add esp, 4
jmp 0x466a89
test edx, edx
je 0x46682c
mov ecx, edx
call fcn.0040fd00
mov ecx, eax
mov dword [esp + 0x2c], ecx
test cl, 2
je 0x466a89
jmp 0x466834
mov dword [esp + 0x2c], 0xfffe
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x6c], eax
inc eax
cmp dword [esp + 0x34], 0
mov dword [ecx + 0x28], eax
je 0x466856
mov eax, edx
mov dword [esp + 0x40], eax
jmp 0x466870
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x40], eax
cmp edx, eax
jg 0x4669a4
lea ebx, [ebx]
cmp edx, 1
je 0x466990
call fcn.00455e20
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
mov eax, dword [edi + eax + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x466984
jmp 0x4668a0
mov edi, dword [ebx + 8]
test dword [edi + 0x24], 0x100
je 0x466976
mov ax, word [edi + 0x2c]
add ax, 0x2e
movzx ecx, ax
mov eax, dword [edi + 8]
mov dword [esp + 0x70], ecx
test eax, eax
je 0x4668d3
test byte [eax + 0x38], 0x80
je 0x46691b
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4668c6
test cx, cx
je 0x46691b
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
push 0x6d
push edi
push dword [esp + 0x20]
call fcn.0045ead0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x38]
cwde
add esp, 0xc
and ecx, 1
push eax
mov eax, dword [esi + 0x88]
add ecx, 2
add eax, ecx
push eax
push dword [esp + 0x74]
mov edx, 0x21
mov ecx, esi
call fcn.0042d7e0
add esp, 0xc
push dword [edi]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
push dword [edi + eax]
push str.ANALYZE___w_.__w_
push ecx
call fcn.0040e130
add esp, 0x10
test byte [esp + 0x2c], 1
mov edx, eax
je 0x4669b5
mov ecx, dword [esp + 0x14]
call fcn.0044a500
push 0xfffffffffffffff9
push edx
mov edi, eax
push 0
push edi
push 0
mov edx, 0x6a
mov ecx, esi
call fcn.0042dc00
add esp, 0x14
mov edx, 0x51
push 1
push edi
mov ecx, esi
call fcn.0042d930
add esp, 8
mov edi, dword [esp + 0x24]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x4668a0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
inc edx
add edi, 0x10
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], edi
cmp edx, eax
jle 0x466870
mov edx, 0x9f
mov ecx, esi
call fcn.0042d850
jmp 0x466a89
push 0xfffffffffffffff9
push edx
push 0
push 0
push 0
mov edx, 0x8e
mov ecx, esi
call fcn.0042dc00
add esp, 0x14
jmp 0x46697a
test edx, edx
je 0x4669f4
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x70]
call fcn.0040fa50
test eax, eax
jne 0x4669f4
push dword [esp + 0x74]
push dword [esp + 0x74]
call fcn.0040b800
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0040b800
push edx
push eax
mov ecx, esi
call fcn.00464110
add esp, 0x10
jmp 0x466a89
test edx, edx
je 0x466a4e
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x70]
call fcn.0040fa50
test eax, eax
jne 0x466a4e
cmp dword [esp + 0x74], eax
jl 0x466a4e
mov eax, dword [esp + 0x70]
jg 0x466a33
test eax, eax
jb 0x466a4e
and eax, 0x7fffffff
jl 0x466a4e
mov ecx, 8
cmp eax, ecx
cmovg eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x90]
jmp 0x466a7c
test edx, edx
je 0x466a72
mov ecx, edx
call fcn.0040fd00
push eax
push dword [esp + 0x14]
call fcn.00492dc0
add esp, 8
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1b8]
cdq
push edx
push eax
mov ecx, esi
call fcn.00464110
add esp, 8
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
call fcn.0040bdb0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
call fcn.0040bdb0
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004fcf30
mov esp, ebp
pop ebp
ret