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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
push esi
mov esi, dword [ebx + 8]
push edi
mov dword [esp + 0x10], eax
test esi, esi
je 0x4c46b2
mov dword [esp + 0x18], esi
jmp 0x4c46cd
cmp dword [ebx + 0x74], 0
jne 0x4c46c2
test byte [eax + 0x44], 8
jne 0x4c46c2
mov byte [ebx + 0x17], 1
call fcn.00493d60
mov dword [esp + 0x18], eax
mov esi, eax
test esi, esi
je 0x4c69c6
or dword [esi + 0x94], 0x40
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x58]
mov dword [ebx + 0x2c], 2
call fcn.004b35f0
mov dword [esp + 0x14], eax
test eax, eax
jl 0x4c69c6
mov edi, dword [esp + 0x10]
mov ebx, dword [edi + 0x10]
mov ecx, eax
shl eax, 4
add ebx, eax
mov dword [esp + 0x5c], eax
cmp ecx, 1
jne 0x4c4725
mov eax, dword [ebp + 8]
call fcn.004b81f0
test eax, eax
jne 0x4c69c6
mov ecx, dword [esp + 0x58]
push edi
call fcn.004b3440
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
je 0x4c69c6
cmp dword [ebp + 0x18], 0
je 0x4c4757
mov eax, dword [ebp + 0x14]
push eax
push 0x517d78
call fcn.00477300
add esp, 8
jmp 0x4c4763
mov ecx, dword [ebp + 0x14]
push edi
call fcn.004b3440
add esp, 4
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 4], 0
mov dword [esp + 0x1c], eax
jbe 0x4c4778
mov edi, dword [ebx]
mov dword [esp + 0x24], edi
jmp 0x4c4784
mov dword [esp + 0x24], 0
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
push edi
push edx
push eax
mov eax, dword [ebp + 8]
push 0x13
call fcn.004b2480
add esp, 0x10
test eax, eax
jne 0x4c69ac
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x7c], edx
mov dword [eax + 0x18c], ecx
lea ecx, [esp + 0x78]
push ecx
push 0xe
push edi
push eax
call fcn.004eead0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4c4824
push 1
mov ebx, esi
call fcn.00495c10
mov edx, dword [esp + 0x7c]
add esp, 4
push 0xffffffffffffffff
push edx
push edi
push edi
mov ecx, esi
call fcn.00495cd0
mov eax, dword [esp + 0x88]
mov ecx, esi
call fcn.004c44c0
mov eax, dword [esp + 0x88]
push eax
call fcn.004750b0
add esp, 0x14
jmp 0x4c69ac
cmp edi, 0xc
je 0x4c486a
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4c485c
mov esi, dword [ebp + 8]
push eax
push 0x5138ec
call fcn.00478120
mov ecx, dword [esp + 0x80]
push ecx
call fcn.004750b0
mov eax, esi
add esp, 0xc
inc dword [eax + 0x24]
mov dword [eax + 0xc], edi
jmp 0x4c69ac
mov eax, dword [ebp + 8]
inc dword [eax + 0x24]
mov dword [eax + 0xc], edi
jmp 0x4c69ac
mov edx, dword [esp + 0x34]
push edx
call fcn.004c45d0
mov edi, eax
add esp, 4
mov dword [esp + 0x28], edi
test edi, edi
je 0x4c69ac
test byte [edi + 5], 1
je 0x4c489f
mov eax, dword [ebp + 8]
push eax
call fcn.004c7a60
add esp, 4
test eax, eax
jne 0x4c69ac
mov al, byte [edi + 5]
mov edi, dword [esp + 0x1c]
test al, 2
jne 0x4c48bd
test al, 4
je 0x4c48b2
test edi, edi
jne 0x4c48bd
mov eax, dword [esp + 0x28]
mov ecx, esi
call fcn.004c4380
mov ecx, dword [esp + 0x28]
movzx eax, byte [ecx + 4]
cmp eax, 0x27
ja case.0x4c48ce.3
jmp dword [eax*4 + 0x4c69d0]
mov ecx, dword [esp + 0x14]
mov eax, esi
call fcn.00495080
test edi, edi
jne 0x4c4912
mov eax, dword [ebp + 8]
add dword [eax + 0x2c], 2
push 9
mov eax, 0x50b9d4
mov ecx, esi
call fcn.004946a0
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x4c69ac
mov ecx, edi
call fcn.00478c30
call fcn.004792f0
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 8]
push 0
mov edi, eax
call fcn.004b8330
mov ecx, dword [esp + 0x18]
add esp, 4
push edi
push 3
push ecx
push 0x6b
push esi
call fcn.00493fe0
mov edx, dword [ebx + 0xc]
mov dword [edx + 0x50], edi
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x50]
mov eax, dword [ebx + 4]
add esp, 0x14
push ecx
call fcn.004894d0
add esp, 4
jmp 0x4c69ac
mov ebx, dword [ebx + 4]
test edi, edi
jne 0x4c497e
test ebx, ebx
je 0x4c4977
mov edx, dword [ebx + 4]
mov eax, dword [edx + 0x20]
jmp 0x4c69a1
xor eax, eax
jmp 0x4c69a1
mov ecx, edi
call fcn.00478c30
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x54], eax
push 0
push 0xffffffffffffffff
mov ecx, ebx
call fcn.00489610
add esp, 8
cmp eax, 7
jne 0x4c69ac
mov eax, dword [esp + 0x10]
call fcn.00475880
jmp 0x4c69ac
mov edx, dword [ebx + 4]
or ebx, 0xffffffff
mov dword [esp + 0x5c], edx
test edi, edi
je 0x4c49e2
push str.fast
push edi
call fcn.00478270
add esp, 8
test eax, eax
jne 0x4c49d6
lea ebx, [eax + 2]
jmp 0x4c49e2
xor al, al
mov ecx, edi
call fcn.004c4200
movzx ebx, al
mov eax, dword [ebp + 0x10]
xor edi, edi
cmp dword [eax + 4], edi
jne 0x4c4a20
cmp ebx, edi
jl 0x4c4a20
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x14], edi
jle 0x4c4a20
mov dword [esp + 0x40], edi
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + eax + 4]
call fcn.00489760
mov edx, dword [esp + 0x10]
add dword [esp + 0x40], 0x10
inc edi
cmp edi, dword [edx + 0x14]
jl 0x4c49fd
mov eax, dword [esp + 0x5c]
call fcn.00489760
jmp 0x4c69a1
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov edx, ebx
call fcn.004b8290
inc dword [ebx + 0x2c]
mov eax, dword [esp + 0x34]
movzx ecx, byte [eax]
cmp byte [ecx + 0x50a5e8], 0x70
mov ebx, dword [ebx + 0x2c]
jne 0x4c4a61
mov edx, dword [esp + 0x14]
push 0
push ebx
push edx
push 0xa7
jmp 0x4c4a79
mov ecx, edi
call fcn.00478c30
call fcn.004792f0
push eax
mov eax, dword [esp + 0x18]
push ebx
push eax
push 0xa8
push esi
call fcn.00493fe0
add esp, 0x14
push 0
push 1
push ebx
push 0x51
push esi
call fcn.00493fe0
add esp, 0x14
jmp 0x4c69ac
mov esi, edi
mov dword [esp + 0x5c], str.normal
call fcn.004c4220
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4c4b01
cmp edx, 0xffffffff
jne 0x4c4ac1
mov edx, dword [esp + 0x10]
movzx eax, byte [edx + 0x4b]
jmp 0x4c4b0e
test eax, eax
jne 0x4c4b01
mov eax, dword [esp + 0x10]
mov esi, 2
cmp dword [eax + 0x14], esi
jle 0x4c4afa
mov edi, 0x20
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
mov ecx, dword [edi + eax + 4]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
call fcn.00483f40
mov ecx, dword [esp + 0x10]
inc esi
add edi, 0x10
cmp esi, dword [ecx + 0x14]
jl 0x4c4ad8
mov eax, dword [esp + 0x10]
mov byte [eax + 0x4b], dl
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
call fcn.00483f40
cmp eax, 1
mov eax, str.exclusive
je 0x4c4b1c
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
call fcn.004c44c0
jmp 0x4c69ac
test edi, edi
jne 0x4c4b38
mov dword [esp + 0x28], 0xffffffff
jmp 0x4c4b74
mov eax, edi
call fcn.00477f80
mov dword [esp + 0x5c], eax
xor ebx, ebx
cmp ebx, 6
je 0x4c4b2e
mov eax, dword [ebx*4 + 0x50b9b8]
test eax, eax
je 0x4c4b2e
mov ecx, dword [esp + 0x5c]
push ecx
push eax
push edi
call fcn.004782e0
add esp, 0xc
test eax, eax
je 0x4c4b6b
inc ebx
jmp 0x4c4b45
mov dword [esp + 0x28], ebx
cmp ebx, 0xffffffff
jne 0x4c4b8e
mov edx, dword [ebp + 0x10]
cmp dword [edx + 4], 0
jne 0x4c4b8e
mov eax, edx
mov dword [esp + 0x14], 0
mov dword [eax + 4], 1
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x14]
sub edi, 1
js 0x4c4be1
mov ebx, edi
shl ebx, 4
nop
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
cmp dword [ebx + eax + 4], 0
je 0x4c4bd9
cmp edi, dword [esp + 0x14]
je 0x4c4bbd
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 4], 0
jne 0x4c4bd9
mov ecx, edi
mov eax, esi
call fcn.00495080
mov edx, dword [esp + 0x28]
push edx
push 1
push edi
push 7
push esi
call fcn.00493fe0
add esp, 0x14
dec edi
sub ebx, 0x10
test edi, edi
jge 0x4c4ba0
push 0
push 1
push 1
push 0x51
push esi
call fcn.00493fe0
add esp, 0x14
jmp 0x4c69ac
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
mov ebx, dword [ecx]
or ecx, 0xffffffff
mov eax, 0xfffffffe
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
test edi, edi
je 0x4c4c43
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x68]
push edx
call fcn.004789d0
mov ecx, dword [esp + 0x70]
add esp, 4
cmp ecx, 0xffffffff
jg 0x4c4c3f
jl 0x4c4c38
mov eax, dword [esp + 0x68]
cmp eax, 0xffffffff
jae 0x4c4c43
or eax, 0xffffffff
or ecx, eax
jmp 0x4c4c43
mov eax, dword [esp + 0x68]
push ecx
push eax
mov ecx, ebx
call fcn.00484080
push edx
push eax
call fcn.004c4420
add esp, 0x10
jmp 0x4c69ac
mov eax, dword [ebx + 4]
mov dword [esp + 0x5c], eax
test edi, edi
jne 0x4c4c70
call fcn.00489850
jmp 0x4c69a1
mov esi, edi
call fcn.004c4250
mov ebx, eax
mov eax, dword [esp + 0x10]
mov byte [eax + 0x4c], bl
mov eax, dword [esp + 0x5c]
push ebx
call fcn.004897d0
add esp, 4
test eax, eax
jne 0x4c69ac
cmp ebx, 1
je 0x4c4ca3
cmp ebx, 2
jne 0x4c69ac
mov esi, dword [esp + 0x18]
mov edi, dword [esi + 0x88]
push 5
mov eax, 0x50b9fc
mov ecx, esi
call fcn.004946a0
mov ecx, dword [esp + 0x18]
add edi, 4
dec ebx
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x30], edi
mov dword [eax + 0x54], ecx
mov dword [eax + 0x5c], ebx
add esp, 4
mov eax, esi
call fcn.00495080
jmp 0x4c69ac
test edi, edi
je 0x4c4cff
lea ecx, [esp + 0x5c]
push ecx
push edi
call fcn.00478ac0
add esp, 8
test eax, eax
je 0x4c4cff
mov ebx, dword [esp + 0x5c]
test ebx, ebx
jg 0x4c4d04
mov ebx, SysReAllocString
mov edi, dword [esp + 0x14]
mov edx, dword [ebp + 8]
push 0
mov ecx, edi
call fcn.004b8330
add esp, 4
push 0
push 1
push ebx
push 0x46
push esi
call fcn.00493fe0
add esp, 0x14
push 0
push 0
push edi
push 0x3b
push esi
call fcn.00493fe0
add esp, 0x14
push 0
push 0
push 1
push 0x51
push esi
mov edi, eax
call fcn.00493fe0
add esp, 0x14
push 0
push 0xffffffffffffffff
push 1
push 0x53
push esi
call fcn.00493fe0
add esp, 0x14
push 0
push edi
push 1
push 0x2f
push esi
call fcn.00493fe0
add esp, 0x14
mov eax, edi
mov edx, esi
call fcn.00494810
jmp 0x4c69ac
test edi, edi
jne 0x4c4d88
mov edx, dword [ebx + 0xc]
mov eax, dword [edx + 0x50]
jmp 0x4c69a1
mov ecx, edi
call fcn.00478c30
mov ecx, dword [ebx + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [ebx + 0xc]
mov eax, dword [edx + 0x50]
push eax
mov eax, dword [ebx + 4]
call fcn.004894d0
add esp, 4
jmp 0x4c69ac
test edi, edi
jne 0x4c4dcf
mov ecx, dword [esp + 0x10]
test byte [ecx + 0x1c], 0x20
je 0x4c4977
mov eax, dword [ebx + 4]
push edi
call fcn.00489520
add esp, 4
jmp 0x4c69a1
lea edx, [esp + 0x50]
push edx
push edi
mov dword [esp + 0x58], 1
call fcn.00478ac0
mov esi, dword [esp + 0x58]
add esp, 8
test eax, eax
je 0x4c4df9
mov eax, dword [ebx + 4]
push esi
call fcn.00489520
add esp, 4
test esi, esi
setne al
mov ecx, edi
call fcn.004c4200
test al, al
mov eax, dword [esp + 0x10]
je 0x4c4e1f
or dword [eax + 0x1c], 0x20
push eax
call fcn.004c4500
add esp, 4
jmp 0x4c69ac
and dword [eax + 0x1c], 0xffffffdf
push eax
call fcn.004c4500
add esp, 4
jmp 0x4c69ac
test edi, edi
je 0x4c4ec8
lea eax, [esp + 0x68]
push eax
call fcn.004789d0
mov ecx, dword [esp + 0x70]
add esp, 4
test ecx, ecx
jg 0x4c4e6b
jl 0x4c4e57
cmp dword [esp + 0x68], 0
jae 0x4c4e6b
mov ecx, dword [0x52e198]
mov dword [esp + 0x68], ecx
mov ecx, dword [0x52e19c]
mov dword [esp + 0x6c], ecx
mov edx, dword [ebp + 0x10]
cmp dword [edx + 4], 0
mov eax, dword [esp + 0x10]
jne 0x4c4e82
mov edx, dword [esp + 0x68]
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x4c4ec8
mov ebx, edi
shl ebx, 4
nop
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + edx + 4]
test eax, eax
je 0x4c4ec0
cmp edi, dword [esp + 0x14]
je 0x4c4eae
mov edx, dword [ebp + 0x10]
cmp dword [edx + 4], 0
jne 0x4c4ec0
push ecx
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.00489570
mov ecx, dword [esp + 0x74]
add esp, 8
dec edi
sub ebx, 0x10
test edi, edi
jge 0x4c4e90
mov ecx, dword [esp + 0x10]
or eax, 0xffffffff
lea edx, [esp + 0x68]
push edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x28]
push 0x12
push eax
push ecx
call fcn.004eead0
add esp, 0x10
test eax, eax
jne 0x4c4efd
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
jmp 0x4c69a2
cmp eax, 0xc
je 0x4c69ac
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x4c69ac
test edi, edi
jne 0x4c4f25
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + 0x48]
jmp 0x4c69a1
mov eax, edi
mov edi, dword [ebp + 8]
call fcn.004c4310
jmp 0x4c69ac
test edi, edi
jne 0x4c4f49
mov eax, dword [0x53a98c]
mov ecx, esi
call fcn.004c44c0
jmp 0x4c69ac
cmp byte [edi], 0
je 0x4c4f84
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x5c]
push ecx
push 1
push edi
push eax
call edx
add esp, 0x10
test eax, eax
jne 0x4c4f6f
cmp dword [esp + 0x5c], eax
jne 0x4c4f84
mov esi, dword [ebp + 8]
push str.not_a_writable_directory
call fcn.00478120
add esp, 4
jmp 0x4c69ac
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x48], 1
ja 0x4c4f96
mov eax, dword [ebp + 8]
call fcn.004c42c0
mov ecx, dword [0x53a98c]
push ecx
call fcn.004750b0
add esp, 4
cmp byte [edi], 0
je 0x4c4fbf
push edi
push 0x5138ec
call fcn.004773d0
mov dword [0x53a98c], eax
jmp 0x4c69a9
mov dword [0x53a98c], 0
jmp 0x4c69ac
test edi, edi
jne 0x4c4fe3
mov eax, dword [0x53a990]
mov ecx, esi
call fcn.004c44c0
jmp 0x4c69ac
cmp byte [edi], 0
je 0x4c5011
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x5c]
push ecx
push 1
push edi
push eax
call edx
add esp, 0x10
test eax, eax
jne 0x4c4f6f
cmp dword [esp + 0x5c], eax
je 0x4c4f6f
mov eax, dword [0x53a990]
push eax
call fcn.004750b0
add esp, 4
cmp byte [edi], 0
je 0x4c5039
push edi
push 0x5138ec
call fcn.004773d0
mov dword [0x53a990], eax
jmp 0x4c69a9
mov dword [0x53a990], 0
jmp 0x4c69ac
test edi, edi
jne 0x4c5056
movzx eax, byte [ebx + 8]
dec eax
jmp 0x4c69a1
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x47], 0
jne 0x4c5075
mov esi, dword [ebp + 8]
push str.Safety_level_may_not_be_changed_inside_a_transaction
call fcn.00478120
add esp, 4
jmp 0x4c69ac
cmp dword [esp + 0x14], 1
je 0x4c69ac
mov edx, dword [esp + 0x1c]
push 1
push 0
push edx
call fcn.004c4150
add esp, 0xc
inc eax
and eax, 7
jne 0x4c509c
mov eax, 1
mov byte [ebx + 8], al
mov eax, dword [esp + 0x10]
push eax
mov byte [ebx + 9], 1
call fcn.004c4500
add esp, 4
jmp 0x4c69ac
test edi, edi
jne 0x4c50db
mov edi, dword [esp + 0x28]
mov eax, edi
mov ecx, esi
call fcn.004c4380
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x10]
and eax, dword [ecx + 0x1c]
neg eax
sbb eax, eax
neg eax
jmp 0x4c69a1
mov ebx, dword [esp + 0x10]
cmp byte [ebx + 0x47], 0
mov edx, dword [ecx + 8]
mov dword [esp + 0x30], edx
jne 0x4c50f4
and dword [esp + 0x30], 0xffffbfff
xor al, al
mov ecx, edi
call fcn.004c4200
test al, al
mov eax, dword [esp + 0x30]
je 0x4c510a
or dword [ebx + 0x1c], eax
jmp 0x4c5126
mov ecx, eax
not ecx
and dword [ebx + 0x1c], ecx
cmp eax, 0x80000
jne 0x4c5126
xor eax, eax
mov dword [ebx + 0x1d0], eax
mov dword [ebx + 0x1d4], eax
push 0
push 0
push 0
push 0x9f
push esi
call fcn.00493fe0
add esp, 0x14
push ebx
call fcn.004c4500
add esp, 4
jmp 0x4c69ac
test edi, edi
je 0x4c69ac
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
push edx
push eax
push 2
push ecx
call fcn.004b2b10
add esp, 0x10
mov dword [esp + 0x38], eax
test eax, eax
je 0x4c69ac
mov dword [esp + 0x40], 0
mov ebx, eax
call fcn.004b36a0
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov edx, edi
mov dword [esp + 0x50], eax
mov dword [edi + 0x2c], 6
call fcn.004b8290
push ebx
mov eax, edi
call fcn.004b56b0
mov eax, dword [esp + 0x3c]
movsx ecx, word [eax + 0x2a]
mov edi, dword [eax + 4]
xor ebx, ebx
add esp, 4
mov dword [esp + 0x3c], ebx
test ecx, ecx
jle 0x4c69ac
mov al, byte [edi + 0xf]
test al, 2
je 0x4c51cd
inc dword [esp + 0x40]
jmp 0x4c524b
test al, 1
jne 0x4c51d5
xor eax, eax
jmp 0x4c5205
cmp dword [esp + 0x50], 0
mov eax, 1
je 0x4c5205
cmp ecx, eax
jl 0x4c5205
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 4]
lea esp, [esp]
movsx ebx, word [edx]
cmp ebx, dword [esp + 0x3c]
je 0x4c5201
inc eax
add edx, 2
cmp eax, ecx
jle 0x4c51f0
mov ebx, dword [esp + 0x3c]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4c5211
mov ecx, dword [ecx + 8]
jmp 0x4c5213
xor ecx, ecx
push eax
xor eax, eax
cmp byte [edi + 0xc], al
push ecx
setne al
push eax
push 0x511b20
mov eax, edi
call fcn.00477fa0
mov ecx, dword [edi]
add esp, 4
push eax
push ecx
mov edx, ebx
sub edx, dword [esp + 0x54]
push edx
push str.issisi
push 1
call fcn.004940b0
mov esi, dword [esp + 0x38]
add esp, 0x20
mov eax, dword [esp + 0x38]
movsx ecx, word [eax + 0x2a]
inc ebx
add edi, 0x10
cmp ebx, ecx
mov dword [esp + 0x3c], ebx
jl 0x4c51c0
jmp 0x4c69ac
test edi, edi
je 0x4c69ac
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
push ecx
push edx
push eax
call fcn.004b2cb0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x4c69ac
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 8], 0
je 0x4c52af
movzx edx, word [ebx + 0x34]
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 8]
mov dword [edx + 0x2c], 6
jmp 0x4c52c1
movzx eax, word [ebx + 0x32]
mov edx, dword [ebp + 8]
mov dword [esp + 0x40], eax
mov dword [edx + 0x2c], 3
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x14]
call fcn.004b8290
xor edi, edi
cmp dword [esp + 0x40], edi
jle 0x4c69ac
jmp 0x4c52e4
mov esi, dword [esp + 0x18]
mov edx, dword [ebx + 4]
movzx eax, word [edx + edi*2]
test ax, ax
jge 0x4c52f4
xor ecx, ecx
jmp 0x4c5304
mov edx, dword [esp + 0x5c]
mov edx, dword [edx + 4]
movsx ecx, ax
shl ecx, 4
mov ecx, dword [ecx + edx]
push ecx
cwde
push eax
push edi
push str.iisX
push 1
call fcn.004940b0
mov ecx, dword [esp + 0x3c]
add esp, 0x14
cmp dword [ecx + 8], 0
je 0x4c534f
movzx edx, word [ebx + 0x32]
mov ecx, dword [ebx + 0x20]
mov esi, dword [esp + 0x18]
xor eax, eax
cmp edi, edx
mov edx, dword [ecx + edi*4]
setl al
push eax
mov eax, dword [ebx + 0x1c]
movzx ecx, byte [eax + edi]
push edx
push ecx
push str.isiX
push 4
call fcn.004940b0
add esp, 0x14
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2c]
mov ecx, dword [esp + 0x18]
push 0
push eax
push 1
push 0x51
push ecx
call fcn.00493fe0
inc edi
add esp, 0x14
cmp edi, dword [esp + 0x40]
jl 0x4c52e0
jmp 0x4c69ac
test edi, edi
je 0x4c69ac
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
push edx
push eax
mov eax, dword [esp + 0x24]
call fcn.004b2a40
mov edi, eax
add esp, 8
test edi, edi
je 0x4c69ac
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov dword [edx + 0x2c], 5
call fcn.004b8290
mov edi, dword [edi + 8]
xor ebx, ebx
test edi, edi
je 0x4c69ac
mov dword [esp + 0x68], 0x517df0
mov dword [esp + 0x6c], 0x517df4
mov dword [esp + 0x70], 0x51456c
jmp 0x4c53e4
mov esi, dword [esp + 0x18]
mov edx, dword [edi + 0x38]
xor ecx, ecx
cmp dword [edi + 0x24], ecx
setne cl
and edx, 3
mov eax, dword [esp + edx*4 + 0x68]
mov edx, dword [edi]
push ecx
xor ecx, ecx
cmp byte [edi + 0x36], cl
push eax
setne cl
push ecx
push edx
push ebx
push str.isisi
push 1
call fcn.004940b0
mov edi, dword [edi + 0x14]
add esp, 0x1c
inc ebx
test edi, edi
jne 0x4c53e0
jmp 0x4c69ac
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
xor edi, edi
mov dword [eax + 0x2c], 3
cmp dword [ecx + 0x14], edi
jle 0x4c69ac
xor ebx, ebx
lea esp, [esp]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + ebx + 4]
add edx, ebx
test eax, eax
je 0x4c546e
call fcn.00491090
push eax
mov eax, dword [edx]
push eax
push edi
push 0x517e00
push 1
call fcn.004940b0
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
add esp, 0x14
inc edi
add ebx, 0x10
cmp edi, dword [ecx + 0x14]
jl 0x4c5440
jmp 0x4c69ac
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x2c], 2
mov edi, dword [edx + 0x17c]
xor ebx, ebx
test edi, edi
je 0x4c69ac
jmp 0x4c54a4
mov esi, dword [esp + 0x18]
mov eax, dword [edi + 8]
mov ecx, dword [eax]
push ecx
push ebx
push 0x517e04
push 1
call fcn.004940b0
mov edi, dword [edi]
add esp, 0x10
inc ebx
test edi, edi
jne 0x4c54a0
jmp 0x4c69ac
test edi, edi
je 0x4c69ac
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
push edx
push eax
mov eax, dword [esp + 0x24]
call fcn.004b2a40
add esp, 8
mov dword [esp + 0x5c], eax
test eax, eax
je 0x4c69ac
mov edi, dword [eax + 0x10]
test edi, edi
je 0x4c69ac
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], 0
mov dword [edx + 0x2c], 8
call fcn.004b8290
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x4c5587
lea ecx, [edi + 0x24]
mov dword [esp + 0x40], ecx
jmp 0x4c5530
mov al, byte [edi + 0x19]
push str.NONE
call fcn.004c4590
push eax
mov al, byte [edi + 0x1a]
call fcn.004c4590
mov ecx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x4c]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
mov edx, dword [ecx + 4]
mov ecx, dword [edi + 8]
shl eax, 4
mov eax, dword [eax + edx]
mov edx, dword [esp + 0x4c]
push eax
push ecx
push ebx
push edx
push str.iissssss
push 1
call fcn.004940b0
add dword [esp + 0x68], 8
mov esi, dword [esp + 0x40]
inc ebx
add esp, 0x28
cmp ebx, dword [edi + 0x14]
jl 0x4c5530
mov edi, dword [edi + 4]
inc dword [esp + 0x3c]
test edi, edi
jne 0x4c5516
jmp 0x4c69ac
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x50], eax
inc eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov dword [edx + 0x2c], eax
call fcn.004b8290
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + eax + 0xc]
mov eax, dword [edx + 0x10]
test eax, eax
je 0x4c69ac
mov ebx, dword [esp + 0x1c]
jmp 0x4c55e4
mov eax, dword [esp + 0x4c]
test ebx, ebx
je 0x4c560c
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 8]
push eax
push ebx
push 0
push ecx
call fcn.004b2b10
mov edi, eax
add esp, 0x10
mov dword [esp + 0x30], edi
mov dword [esp + 0x4c], 0
jmp 0x4c561b
mov edx, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x30], edx
mov dword [esp + 0x4c], eax
mov edi, edx
test edi, edi
je 0x4c5983
cmp dword [edi + 0x10], 0
je 0x4c5983
mov ecx, dword [edi]
mov edx, dword [edi + 0x1c]
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
push ecx
push 0
push edx
call fcn.004b2510
movsx eax, word [edi + 0x2a]
mov ecx, dword [esp + 0x44]
add eax, ecx
mov ecx, dword [ebp + 8]
add esp, 0xc
cmp eax, dword [ecx + 0x2c]
jle 0x4c565a
mov dword [ecx + 0x2c], eax
mov edi, dword [esp + 0x30]
push 0x6d
mov edx, ebx
push edx
push 0
mov eax, edi
call fcn.004bf9f0
mov ebx, dword [edi]
mov eax, dword [esp + 0x54]
add esp, 0xc
call fcn.00494050
mov edi, dword [edi + 0x10]
mov dword [esp + 0x20], 1
test edi, edi
je 0x4c573f
lea ecx, [ecx]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
push eax
mov eax, dword [edi + 8]
push ecx
call fcn.004b2a40
mov esi, eax
add esp, 8
test esi, esi
je 0x4c5730
mov edx, dword [esi]
mov eax, dword [esi + 0x1c]
mov ebx, dword [esp + 0x14]
push edx
push 0
push eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], 0
call fcn.004b2510
mov edx, dword [ebp + 8]
add esp, 0xc
lea ecx, [esp + 0x2c]
push ecx
push edi
push esi
push edx
xor eax, eax
call fcn.004bd6f0
add esp, 0x10
test eax, eax
jne 0x4c69ac
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
test ebx, ebx
jne 0x4c570f
mov eax, dword [esp + 0x14]
push 0x6d
push eax
push ecx
mov ecx, dword [ebp + 8]
mov eax, esi
call fcn.004bf9f0
add esp, 0xc
jmp 0x4c5730
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 0x2c]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ecx
push 0x6d
push edx
call fcn.00493fe0
mov eax, dword [ebp + 8]
add esp, 0x14
call fcn.00494ca0
mov edi, dword [edi + 4]
inc dword [esp + 0x20]
test edi, edi
jne 0x4c5690
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x20]
cmp dword [ecx + 0x28], eax
jge 0x4c574e
mov dword [ecx + 0x28], eax
mov ebx, dword [esp + 0x18]
push 0
push 0
push 0
push 0x24
push ebx
call fcn.00493fe0
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x10]
add esp, 0x14
mov dword [esp + 0x20], 1
mov dword [esp + 0x28], eax
test eax, eax
je 0x4c595b
mov eax, dword [esp + 0x48]
lea ecx, [eax + 1]
add eax, 2
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
push edx
push eax
mov eax, dword [esi + 8]
call fcn.004b2a40
xor edi, edi
add esp, 8
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], edi
cmp eax, edi
je 0x4c57d6
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x2c]
push ecx
push esi
push eax
push edx
lea eax, [esp + 0x50]
call fcn.004bd6f0
add esp, 0x10
mov eax, ebx
call fcn.004944a0
cmp dword [esi + 0x14], edi
mov dword [esp + 0x3c], eax
jle 0x4c5843
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
add eax, 0x24
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4c5802
mov eax, dword [eax + edi*4]
jmp 0x4c5808
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
push esi
push 0
push ebx
mov ebx, dword [esp + 0x3c]
call fcn.004ab540
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
add esp, 0xc
push 0
push edx
push esi
push 0x32
push eax
call fcn.00493fe0
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x58], 8
mov ebx, dword [esp + 0x2c]
inc edi
add esp, 0x14
inc esi
cmp edi, dword [ecx + 0x14]
jl 0x4c57f5
cmp dword [esp + 0x2c], 0
je 0x4c5897
mov edi, dword [esp + 0x28]
mov edx, dword [edi + 0x14]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
push edx
push ecx
call fcn.004bfb10
mov ecx, dword [edi + 0x14]
mov edx, dword [esp + 0x40]
add esp, 4
push eax
mov eax, dword [esp + 0x58]
push 0x66
mov edi, ebx
call fcn.004941e0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
add esp, 0xc
push 0
push 0x1d
mov esi, ebx
call fcn.00494440
add esp, 8
jmp 0x4c58d1
cmp dword [esp + 0x5c], 0
je 0x4c58d1
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 0x88]
mov edx, dword [esp + 0x20]
push eax
add ecx, 2
push ecx
push edx
push 0x1e
push ebx
call fcn.00493fe0
mov eax, dword [esp + 0x50]
add esp, 0x14
push 0
push eax
push 0
push 0xb
push ebx
call fcn.00493fe0
add esp, 0x14
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x24], 0x20
push 0
jne 0x4c58eb
mov edx, dword [esp + 0x58]
push edx
push 0
push 0x81
jmp 0x4c58f4
mov eax, dword [esp + 0x58]
push eax
push 0
push 0x49
push ebx
call fcn.00493fe0
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x6c]
add esp, 0x14
dec ecx
push ecx
push edx
push 0x517e1c
push eax
mov esi, ebx
call fcn.004940b0
mov ecx, dword [esp + 0x58]
push 0
push 4
push ecx
push 0x51
push ebx
call fcn.00493fe0
mov edx, dword [esp + 0x60]
add esp, 0x24
mov ecx, ebx
call fcn.004944f0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
call fcn.004751a0
mov eax, dword [edi + 4]
inc dword [esp + 0x20]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x4c5794
mov esi, dword [esp + 0x60]
push 0
lea edx, [esi + 1]
push edx
push 0
push 5
push ebx
call fcn.00493fe0
add esp, 0x14
mov eax, esi
mov edx, ebx
call fcn.00494810
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x4c], 0
jne 0x4c55e0
jmp 0x4c69ac
test edi, edi
je 0x4c69ac
mov ecx, dword [esp + 0x1c]
xor al, al
call fcn.004c4200
mov esi, dword [esp + 0x10]
movzx ebx, al
call fcn.004bd560
jmp 0x4c69ac
mov eax, dword [esp + 0x34]
movzx ecx, byte [eax]
mov eax, dword [ebp + 0x10]
xor edx, edx
cmp byte [ecx + 0x50a5e8], 0x71
sete dl
cmp dword [eax], 0
mov dword [esp + 0x48], edx
jne 0x4c59de
mov dword [esp + 0x14], 0xffffffff
mov ecx, dword [ebp + 8]
mov ebx, 0x64
mov dword [ecx + 0x2c], 6
mov dword [esp + 0x24], ebx
test edi, edi
je 0x4c5a0e
lea edx, [esp + 0x24]
push edx
push edi
call fcn.00478ac0
add esp, 8
cmp dword [esp + 0x24], 0
jg 0x4c5a0e
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x24]
push 0
push 1
dec eax
push eax
push 0x46
push esi
call fcn.00493fe0
mov ecx, dword [esp + 0x24]
xor edi, edi
add esp, 0x14
cmp dword [ecx + 0x14], edi
mov dword [esp + 0x38], edi
jle 0x4c63e9
jmp 0x4c5a40
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], 0
test eax, eax
jl 0x4c5a58
cmp edi, eax
jne 0x4c63d7
mov edx, dword [ebp + 8]
mov ecx, edi
call fcn.004b8290
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov ecx, edi
shl ecx, 4
mov ebx, dword [ecx + eax + 0xc]
mov eax, dword [ebx + 0x10]
add ebx, 8
xor edi, edi
mov dword [esp + 0x60], ecx
mov dword [esp + 0x58], ebx
test eax, eax
je 0x4c5ab9
mov ecx, dword [eax + 8]
test byte [ecx + 0x24], 0x20
jne 0x4c5a90
inc edi
mov ecx, dword [ecx + 8]
xor edx, edx
test ecx, ecx
je 0x4c5aa9
lea esp, [esp]
mov ecx, dword [ecx + 0x14]
inc edi
inc edx
test ecx, ecx
jne 0x4c5aa0
cmp edx, dword [esp + 0x4c]
jle 0x4c5ab3
mov dword [esp + 0x4c], edx
mov eax, dword [eax]
test eax, eax
jne 0x4c5a86
mov eax, dword [esp + 0x10]
lea ecx, [edi*4 + 4]
push 0
push ecx
call fcn.004754b0
add esp, 8
test eax, eax
je 0x4c63e9
mov edi, dword [ebx + 8]
xor ecx, ecx
test edi, edi
je 0x4c5b0b
mov edx, dword [edi + 8]
test byte [edx + 0x24], 0x20
jne 0x4c5af0
mov ebx, dword [edx + 0x1c]
inc ecx
mov dword [eax + ecx*4], ebx
mov edx, dword [edx + 8]
test edx, edx
je 0x4c5b05
mov ebx, dword [edx + 0x2c]
inc ecx
mov dword [eax + ecx*4], ebx
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x4c5af7
mov edi, dword [edi]
test edi, edi
jne 0x4c5ae0
mov edx, dword [ebp + 8]
mov ebx, dword [esp + 0x4c]
mov dword [eax], ecx
mov edi, dword [edx + 0x2c]
add ebx, 8
cmp edi, ebx
jg 0x4c5b20
mov edi, ebx
push 0xfffffffffffffff1
push eax
mov dword [edx + 0x2c], edi
mov eax, 1
mov byte [edx + 0x13], 0
mov dword [edx + 0x1c], 0
push 0x94
lea edx, [eax + 1]
mov edi, esi
call fcn.004941e0
movzx dx, byte [esp + 0x44]
add esp, 0xc
mov ecx, esi
call fcn.004947f0
push 0
push 0
push 2
push 0x32
push esi
call fcn.00493fe0
mov edi, dword [esp + 0x24]
mov edx, dword [edi + 0x10]
mov ebx, eax
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + edx]
add esp, 0x14
push ecx
push str._in_database__s__n
call fcn.00477300
push 0
push 3
push 0
push 0x6a
push esi
mov edi, eax
call fcn.00493fe0
mov ecx, dword [esi]
add esp, 0x1c
cmp byte [ecx + 0x49], 0
je 0x4c5baa
mov eax, edi
mov edx, 0xfffffff9
call fcn.004949a0
jmp 0x4c5be3
test eax, eax
jge 0x4c5bb5
mov eax, dword [esi + 0x88]
dec eax
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x58]
cmp byte [eax + edx*4 + 1], 0
lea eax, [eax + edx*4]
je 0x4c5bd8
push edi
push eax
mov eax, 0xfffffff9
mov ecx, esi
call fcn.00494b00
add esp, 8
jmp 0x4c5be3
test edi, edi
je 0x4c5be3
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
push 3
push 3
push 2
push 0x65
push esi
call fcn.00493fe0
add esp, 0x14
call fcn.004c4640
mov edx, dword [esp + 0x18]
mov eax, ebx
call fcn.00494810
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + 8]
mov dword [esp + 0x50], eax
test eax, eax
je 0x4c63cf
mov edx, dword [esp + 0x50]
mov ebx, dword [edx + 8]
cmp dword [ebx + 0x1c], 1
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x58], 0
mov dword [esp + 0x30], 0xffffffff
jl 0x4c63bd
test byte [ebx + 0x24], 0x20
jne 0x4c5c4c
mov dword [esp + 0x44], 0
jmp 0x4c5c57
mov eax, ebx
call fcn.004b36a0
mov dword [esp + 0x44], eax
mov edi, dword [ebp + 8]
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x2c]
push ecx
push 0
push 1
push 0
push 0x6d
push ebx
call fcn.004c2a50
mov esi, dword [esp + 0x34]
add esp, 0x1c
push 0
push 7
push 0
push 0x46
push esi
call fcn.00493fe0
mov edi, dword [ebx + 8]
add esp, 0x14
test edi, edi
je 0x4c5cbf
mov dword [esp + 0x4c], 8
lea esp, [esp]
mov edx, dword [esp + 0x4c]
push 0
push edx
push 0
push 0x46
push esi
call fcn.00493fe0
mov edi, dword [edi + 0x14]
inc dword [esp + 0x60]
add esp, 0x14
test edi, edi
jne 0x4c5ca0
mov edi, dword [esp + 0x28]
push 0
push 0
push edi
push 0x24
push esi
call fcn.00493fe0
add esp, 0x14
push 0
push 1
push 7
push 0x53
push esi
call fcn.00493fe0
add esp, 0x14
cmp dword [esp + 0x48], 0
mov dword [esp + 0x68], eax
jne 0x4c5d0f
movsx eax, word [ebx + 0x2a]
push 3
dec eax
push eax
push edi
push 0x5a
push esi
call fcn.00493fe0
add esp, 0x14
mov edx, 0x80
mov ecx, esi
call fcn.004947f0
xor eax, eax
xor ecx, ecx
cmp cx, word [ebx + 0x2a]
mov dword [esp + 0x54], eax
jge 0x4c5e32
xor edi, edi
mov dword [esp + 0x4c], edi
jmp 0x4c5d30
movsx edx, word [ebx + 0x28]
cmp eax, edx
je 0x4c5e1a
mov ecx, dword [ebx + 4]
cmp byte [edi + ecx + 0xc], 0
je 0x4c5e1a
mov edx, dword [esp + 0x28]
push 3
push edx
push esi
call fcn.004ab540
add esp, 0xc
mov edx, 0x80
mov ecx, esi
call fcn.004947f0
push 0
push 0
push 3
push 0x33
push esi
call fcn.00493fe0
mov edx, dword [ebx]
mov dword [esp + 0x74], eax
mov eax, dword [ebx + 4]
mov ecx, dword [edi + eax]
mov edi, dword [esp + 0x24]
add esp, 0x14
push ecx
push edx
push str.NULL_value_in__s._s
call fcn.00477300
add esp, 0xc
push 0
push 3
push 0
push 0x6a
push esi
mov edi, eax
call fcn.00493fe0
mov ecx, dword [esi]
add esp, 0x14
cmp byte [ecx + 0x49], 0
je 0x4c5dbf
mov eax, edi
mov edx, 0xfffffff9
call fcn.004949a0
jmp 0x4c5df8
test eax, eax
jge 0x4c5dca
mov eax, dword [esi + 0x88]
dec eax
mov ecx, dword [esi + 0x58]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
lea eax, [ecx + eax*4]
je 0x4c5ded
push edi
push eax
mov eax, 0xfffffff9
mov ecx, esi
call fcn.00494b00
add esp, 8
jmp 0x4c5df8
test edi, edi
je 0x4c5df8
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
call fcn.004c4640
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x18]
call fcn.00494810
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x3c]
movsx edx, word [ebx + 0x2a]
inc eax
add edi, 0x10
cmp eax, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], edi
jl 0x4c5d30
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x4c5f92
mov edi, dword [esp + 0x10]
test dword [edi + 0x1c], 0x200
jne 0x4c5f92
push 0
push eax
push edi
call fcn.004a8530
add esp, 0xc
cmp byte [edi + 0x49], 0
mov dword [esp + 0x40], eax
jne 0x4c5f84
mov eax, esi
call fcn.004944a0
mov dword [esp + 0x54], eax
mov eax, esi
call fcn.004944a0
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
inc eax
mov dword [ecx + 0x38], eax
mov edi, dword [edx]
dec edi
test edi, edi
jle 0x4c5ec5
lea eax, [edi + edi*2]
mov ecx, edx
lea edx, [ecx + eax*8 + 4]
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx]
push 0
push eax
mov eax, dword [ebp + 8]
push edx
push eax
call fcn.004ace40
sub dword [esp + 0x5c], 0x18
dec edi
add esp, 0x10
test edi, edi
jg 0x4c5ea1
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 4]
mov edi, dword [ebp + 8]
push 0x10
push ecx
push eax
push edi
call fcn.004acab0
mov edx, dword [esp + 0x64]
mov ecx, esi
call fcn.004944f0
mov dword [edi + 0x38], 0
mov ecx, dword [ebx]
mov edi, dword [esp + 0x20]
push ecx
push str.CHECK_constraint_failed_in__s
call fcn.00477300
push 0
push 3
push 0
push 0x6a
push esi
mov edi, eax
call fcn.00493fe0
mov ecx, dword [esi]
add esp, 0x2c
cmp byte [ecx + 0x49], 0
je 0x4c5f29
mov eax, edi
mov edx, 0xfffffff9
call fcn.004949a0
jmp 0x4c5f62
test eax, eax
jge 0x4c5f34
mov eax, dword [esi + 0x88]
dec eax
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x58]
cmp byte [eax + edx*4 + 1], 0
lea eax, [eax + edx*4]
je 0x4c5f57
push edi
push eax
mov eax, 0xfffffff9
mov ecx, esi
call fcn.00494b00
add esp, 8
jmp 0x4c5f62
test edi, edi
je 0x4c5f62
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
call fcn.004c4640
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
call fcn.004944f0
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4c5f92
push eax
push edi
call fcn.004a8d60
add esp, 8
cmp dword [esp + 0x48], 0
jne 0x4c6288
mov ebx, dword [ebx + 8]
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x4c6288
mov eax, dword [esp + 0x5c]
mov ecx, 8
sub ecx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x60], ecx
jmp 0x4c5fc5
mov ebx, dword [esp + 0x20]
mov eax, esi
call fcn.004944a0
mov dword [esp + 0x54], eax
cmp dword [esp + 0x44], ebx
je 0x4c6275
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x28]
mov edi, dword [ebp + 8]
push ecx
push edx
push 0
push 0
push eax
push ebx
lea eax, [esp + 0x7c]
call fcn.004ba530
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x44]
push 0
push 1
add ecx, edi
push ecx
push 0x53
push esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x84], ebx
call fcn.00493fe0
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x80]
movzx ebx, word [ebx + 0x34]
add esp, 0x2c
push edx
push eax
push edi
push 0x1d
push esi
call fcn.00493fe0
mov ecx, dword [esi]
add esp, 0x14
cmp byte [ecx + 0x49], 0
mov edi, eax
jne 0x4c6056
mov eax, dword [esi + 0x58]
lea edx, [edi + edi*4]
lea eax, [eax + edx*4]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], ebx
mov ebx, str.row
mov eax, 3
call fcn.00494050
mov esi, dword [esp + 0x18]
push 3
push 3
push 7
push 0x65
push esi
call fcn.00493fe0
add esp, 0x14
mov ebx, str._missing_from_index
mov eax, 4
call fcn.00494050
push 3
push 3
push 4
push 0x65
push esi
call fcn.00493fe0
mov ecx, dword [esp + 0x34]
mov ebx, dword [ecx]
add esp, 0x14
mov eax, 4
call fcn.00494050
push 3
push 3
push 4
push 0x65
push esi
mov dword [esp + 0x68], eax
call fcn.00493fe0
add esp, 0x14
call fcn.004c4640
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x88]
test edi, edi
jge 0x4c60d5
lea edi, [eax - 1]
mov edx, dword [esi]
cmp byte [edx + 0x49], 0
je 0x4c60e4
mov ecx, 0x539e70
jmp 0x4c60ed
mov edx, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea ecx, [edx + ecx*4]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x36], 0
je 0x4c6218
mov eax, esi
call fcn.004944a0
mov edx, dword [esp + 0x20]
xor ecx, ecx
xor ebx, ebx
mov edi, eax
cmp cx, word [edx + 0x32]
jae 0x4c6156
mov ecx, edx
mov eax, dword [ecx + 4]
movsx eax, word [eax + ebx*2]
test eax, eax
jl 0x4c6133
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 4]
shl eax, 4
cmp byte [eax + edx + 0xc], 0
jne 0x4c614d
mov eax, dword [esp + 0x30]
push 0
push edi
lea ecx, [ebx + eax]
push ecx
push 0x32
push esi
call fcn.00493fe0
mov ecx, dword [esp + 0x34]
add esp, 0x14
movzx edx, word [ecx + 0x32]
inc ebx
cmp ebx, edx
jl 0x4c6117
mov eax, dword [esp + 0x2c]
push 0
push 0
push eax
push 5
push esi
call fcn.00493fe0
add esp, 0x14
push 0
push edi
push 0
push 0xb
push esi
mov ebx, eax
call fcn.00493fe0
mov eax, dword [esi + 0x88]
add esp, 0x14
test ebx, ebx
jge 0x4c6189
lea ebx, [eax - 1]
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x4c6198
mov ecx, 0x539e70
jmp 0x4c61a1
mov ecx, dword [esi + 0x58]
lea edx, [ebx + ebx*4]
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0x20]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
movzx ebx, word [edx + 0x32]
push eax
push edi
push ecx
push 0x26
push esi
call fcn.00493fe0
mov edx, dword [esi]
add esp, 0x14
cmp byte [edx + 0x49], 0
jne 0x4c61da
mov ecx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], ebx
mov ebx, str.non_unique_entry_in_index
mov eax, 3
call fcn.00494050
mov edx, dword [esp + 0x54]
push 0
push edx
push 0
push 0xb
push esi
call fcn.00493fe0
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x40]
add esp, 0x14
test eax, eax
je 0x4c6218
mov edx, dword [esi + 0x88]
lea ecx, [edi*4 + 4]
sub eax, ecx
mov dword [eax], edx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x88]
test eax, eax
jge 0x4c6229
lea eax, [ecx - 1]
mov edx, dword [esi]
cmp byte [edx + 0x49], 0
je 0x4c6238
mov eax, 0x539e70
jmp 0x4c6241
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x64]
mov dword [eax + 8], ecx
test edx, edx
je 0x4c626d
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x4c626d
mov ecx, dword [ecx + 0x88]
lea edx, [edx*4 + 4]
sub eax, edx
mov dword [eax], ecx
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ebx, dword [ebx + 0x14]
inc dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x4c5fc1
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x28]
push 0
push edi
push edx
push 5
push esi
call fcn.00493fe0
mov ecx, dword [esi + 0x88]
lea eax, [edi - 1]
add esp, 0x14
test eax, eax
jge 0x4c62af
lea eax, [ecx - 1]
mov edx, dword [esi]
cmp byte [edx + 0x49], 0
je 0x4c62be
mov eax, 0x539e70
jmp 0x4c62c7
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
cmp dword [esp + 0x48], 0
mov dword [eax + 8], ecx
jne 0x4c63bd
mov ebx, str.wrong__of_entries_in_index
mov eax, 2
call fcn.00494050
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
test eax, eax
je 0x4c63bd
mov dword [esp + 0x4c], 8
nop
cmp dword [esp + 0x44], eax
je 0x4c63aa
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
push 0
push 3
lea edx, [ecx + edi - 8]
push edx
push 0x68
push esi
call fcn.00493fe0
add esp, 0x14
push 3
push 0
push edi
push 0x35
push esi
call fcn.00493fe0
mov edi, eax
mov eax, dword [esi + 0x88]
add esp, 0x14
test eax, eax
jle 0x4c6356
mov ecx, dword [esi + 0x58]
lea eax, [eax + eax*4]
mov edx, 0x90
mov word [ecx + eax*4 - 0x12], dx
mov eax, dword [esp + 0x20]
mov ebx, dword [eax]
mov eax, 4
call fcn.00494050
push 3
push 2
push 4
push 0x65
push esi
call fcn.00493fe0
add esp, 0x14
call fcn.004c4640
mov ecx, dword [esi + 0x88]
mov eax, edi
test edi, edi
jge 0x4c638b
lea eax, [ecx - 1]
mov edx, dword [esi]
cmp byte [edx + 0x49], 0
je 0x4c639a
mov eax, 0x539e70
jmp 0x4c63a3
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x14]
inc dword [esp + 0x4c]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4c6300
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x4c5c17
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc edi
cmp edi, dword [ecx + 0x14]
mov dword [esp + 0x38], edi
jl 0x4c5a40
push 7
mov eax, 0x50ba14
mov ecx, esi
call fcn.004946a0
add esp, 4
test eax, eax
je 0x4c642d
mov edx, 1
sub edx, dword [esp + 0x24]
mov byte [eax + 0x29], 0xff
mov dword [eax + 8], edx
mov dword [eax + 0x38], 0x517ec8
mov byte [eax + 0x65], 0xff
mov edx, dword [str.database_disk_image_is_malformed]
mov ecx, str.unknown_error
test edx, edx
je 0x4c642a
mov ecx, edx
mov dword [eax + 0x74], ecx
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
mov eax, dword [esi + 0x88]
je 0x4c644b
mov esi, 0x539e70
add eax, 0xfffffffe
mov dword [esi + 0xc], eax
jmp 0x4c69ac
mov esi, dword [esi + 0x58]
add eax, 0xfffffffe
mov dword [esi + 0xc], eax
jmp 0x4c69ac
test edi, edi
jne 0x4c648d
mov edx, dword [ebp + 8]
push edx
call fcn.004c7a60
add esp, 4
test eax, eax
jne 0x4c69ac
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
movzx edx, byte [ecx + 0x46]
mov eax, dword [edx*8 + 0x50ba30]
mov ecx, esi
call fcn.004c44c0
jmp 0x4c69ac
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x10]
mov ecx, dword [ebx + 0xc]
movzx eax, word [ecx + 0x4e]
test al, 1
je 0x4c64ab
test al, 4
je 0x4c69ac
mov edi, dword [esp + 0x1c]
mov eax, dword [str.UTF8]
mov esi, 0x50ba30
test eax, eax
je 0x4c6511
lea esp, [esp]
mov ecx, edi
call fcn.00478290
test eax, eax
je 0x4c64e8
mov eax, dword [esi + 8]
add esi, 8
test eax, eax
jne 0x4c64c0
mov esi, dword [ebp + 8]
push edi
push str.unsupported_encoding:__s
call fcn.00478120
jmp 0x4c69a9
mov al, byte [esi + 4]
test al, al
movzx eax, al
jne 0x4c64f7
mov eax, 2
mov edx, dword [esp + 0x10]
mov byte [edx + 0x46], al
mov ecx, dword [ebx + 0xc]
mov byte [ecx + 0x4d], al
cmp dword [esi], 0
jne 0x4c69ac
mov edi, dword [esp + 0x1c]
mov esi, dword [ebp + 8]
push edi
push str.unsupported_encoding:__s
call fcn.00478120
jmp 0x4c69a9
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov ecx, ebx
mov eax, esi
call fcn.00495080
test edi, edi
je 0x4c6579
mov ecx, dword [esp + 0x28]
test byte [ecx + 5], 8
jne 0x4c6579
push 2
mov eax, 0x50ba78
mov ecx, esi
call fcn.004946a0
mov edx, dword [esp + 0x60]
mov esi, eax
add esp, 4
mov ecx, edi
mov dword [esi + 4], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], edx
call fcn.00478c30
mov dword [esi + 0x20], eax
jmp 0x4c69ac
push 3
mov eax, 0x50ba80
mov ecx, esi
call fcn.004946a0
mov ecx, dword [esp + 0x60]
add esp, 4
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x20], ecx
and dword [esi + 0x94], 0xffffffbf
jmp 0x4c69ac
mov edx, dword [ebp + 8]
xor edi, edi
push edi
mov dword [edx + 0x2c], 1
call fcn.004ef0a0
add esp, 4
test eax, eax
je 0x4c65f3
lea esp, [esp]
mov ebx, eax
mov eax, 1
inc edi
call fcn.00494050
mov eax, dword [esp + 0x18]
push 0
push 1
push 1
push 0x51
push eax
call fcn.00493fe0
add esp, 0x14
push edi
call fcn.004ef0a0
mov esi, dword [esp + 0x1c]
add esp, 4
test eax, eax
jne 0x4c65c0
and dword [esi + 0x94], 0xffffffbf
jmp 0x4c69ac
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0
je 0x4c6611
mov edx, dword [esp + 0x14]
mov dword [esp + 0x5c], edx
jmp 0x4c6619
mov dword [esp + 0x5c], 0xa
xor ebx, ebx
test edi, edi
je 0x4c665e
mov eax, str.full
mov ecx, edi
call fcn.00478290
test eax, eax
jne 0x4c6634
lea ebx, [eax + 1]
jmp 0x4c665e
mov eax, str.restart
mov ecx, edi
call fcn.00478290
test eax, eax
jne 0x4c6649
lea ebx, [eax + 2]
jmp 0x4c665e
mov eax, str.truncate
mov ecx, edi
call fcn.00478290
test eax, eax
jne 0x4c665e
mov ebx, 3
mov ecx, dword [esp + 0x5c]
mov eax, dword [ebp + 8]
push 1
push ebx
push ecx
push 6
push esi
mov dword [eax + 0x2c], 3
call fcn.00493fe0
add esp, 0x14
push 0
push 3
push 1
push 0x51
push esi
call fcn.00493fe0
add esp, 0x14
jmp 0x4c69ac
test edi, edi
je 0x4c66ac
mov ecx, edi
call fcn.00478c30
mov edi, dword [esp + 0x10]
push eax
push edi
call fcn.004ed140
add esp, 8
jmp 0x4c66b0
mov edi, dword [esp + 0x10]
cmp dword [edi + 0xe8], 0x4ed100
jne 0x4c4977
mov eax, dword [edi + 0xec]
jmp 0x4c69a1
mov edx, dword [esp + 0x10]
push edx
call fcn.004eb7f0
add esp, 4
jmp 0x4c69ac
test edi, edi
je 0x4c66f6
mov ecx, edi
call fcn.00478c30
mov dword [esp + 0x50], eax
test al, 2
je 0x4c69ac
jmp 0x4c66fe
mov dword [esp + 0x50], 0xfffe
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x58], eax
inc eax
cmp dword [esp + 0x24], 0
mov dword [ecx + 0x28], eax
je 0x4c671d
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
jmp 0x4c6733
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x14]
dec eax
cmp dword [esp + 0x14], eax
mov dword [esp + 0x54], eax
jg 0x4c68dd
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x40], edx
jmp 0x4c6740
cmp dword [esp + 0x14], 1
je 0x4c68c5
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 8]
call fcn.004b8290
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x40]
mov eax, dword [ecx + edx + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x4c], eax
test eax, eax
je 0x4c68c5
jmp 0x4c6780
mov ecx, dword [esp + 0x4c]
mov edi, dword [ecx + 8]
test dword [edi + 0x24], 0x100
je 0x4c68b3
mov dx, word [edi + 0x2c]
mov eax, dword [edi + 8]
add dx, 0x2e
movzx ebx, dx
test eax, eax
je 0x4c67b3
test byte [eax + 0x38], 0x80
je 0x4c67f7
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4c67a6
test bx, bx
je 0x4c67f7
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x58]
push 0x6d
push eax
push ecx
mov ecx, dword [ebp + 8]
mov eax, edi
call fcn.004bf9f0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esi + 0x88]
add esp, 0xc
movsx edx, bx
push edx
and eax, 1
lea edx, [eax + ecx + 2]
mov eax, dword [esp + 0x5c]
push edx
push eax
push 0x21
push esi
call fcn.00493fe0
add esp, 0x14
mov ecx, dword [edi]
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x10]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [edx + eax]
push ecx
push str.ANALYZE___w_.__w_
call fcn.00477300
add esp, 0xc
test byte [esp + 0x50], 1
mov edi, eax
je 0x4c6850
mov eax, dword [ebp + 8]
call fcn.004adc60
push 0xfffffffffffffff9
mov ebx, eax
push edi
push 0x6a
xor eax, eax
mov ecx, ebx
xor edx, edx
mov edi, esi
call fcn.004941e0
add esp, 0xc
push 0
push 1
push ebx
push 0x51
push esi
call fcn.00493fe0
add esp, 0x14
jmp 0x4c68b3
push 0
push 0
push 0
push 0x8e
push esi
call fcn.00493fe0
mov ecx, dword [esi]
add esp, 0x14
cmp byte [ecx + 0x49], 0
je 0x4c687a
mov eax, edi
mov edx, 0xfffffff9
call fcn.004949a0
jmp 0x4c68b3
test eax, eax
jge 0x4c6885
mov eax, dword [esi + 0x88]
dec eax
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x58]
cmp byte [eax + edx*4 + 1], 0
lea eax, [eax + edx*4]
je 0x4c68a8
push edi
push eax
mov eax, 0xfffffff9
mov ecx, esi
call fcn.00494b00
add esp, 8
jmp 0x4c68b3
test edi, edi
je 0x4c68b3
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xf9
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x4c6780
mov eax, dword [esp + 0x14]
add dword [esp + 0x40], 0x10
inc eax
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
jle 0x4c6740
push 0
push 0
push 0
push 0x9f
push esi
call fcn.00493fe0
add esp, 0x14
jmp 0x4c69ac
test edi, edi
je 0x4c691d
lea edx, [esp + 0x68]
push edx
call fcn.004789d0
add esp, 4
test eax, eax
jne 0x4c691d
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
push eax
push ecx
call fcn.00474c20
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00474c20
push edx
push eax
call fcn.004c4420
add esp, 0x10
jmp 0x4c69ac
test edi, edi
je 0x4c6972
lea edx, [esp + 0x68]
push edx
call fcn.004789d0
add esp, 4
test eax, eax
jne 0x4c6972
cmp dword [esp + 0x6c], eax
jl 0x4c6972
mov eax, dword [esp + 0x68]
jg 0x4c6957
test eax, eax
jb 0x4c6972
and eax, 0x7fffffff
jl 0x4c6972
cmp eax, 8
jle 0x4c6968
mov eax, 8
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x90], eax
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x90]
jmp 0x4c69a1
test edi, edi
je 0x4c6997
mov ecx, edi
call fcn.00478c30
push eax
mov eax, dword [esp + 0x14]
push eax
call fcn.004ec8c0
add esp, 8
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1b8]
cdq
push edx
push eax
call fcn.004c4420
add esp, 8
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov ecx, esi
call fcn.004751a0
mov eax, dword [esp + 0x1c]
mov ecx, esi
call fcn.004751a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret