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

Disassembly:
sub esp, 0xa8
push ebx
push ebp
xor eax, eax
mov dword [esp + 0x74], 0
push esi
xor ecx, ecx
mov dword [esp + 0x8c], eax
cmp dword [esp + 0xd0], eax
push edi
mov edi, dword [esp + 0xbc]
setne byte [esp + 0x12]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x88], eax
mov eax, dword [edi]
mov esi, dword [edi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x8c], ecx
movsx ebx, word [eax + 0x22]
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x58], 0
mov byte [esp + 0x13], 0
mov dword [esp + 0x5c], esi
mov dword [esp + 0x74], ebx
test cl, cl
js 0x4f88f3
mov dword [esp + 0x28], 0
mov dword [esp + 0x70], 1
jmp 0x4f891c
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
test edx, edx
je 0x4f8914
mov edi, edi
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x4f8910
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x4f8900
mov dword [esp + 0x28], edx
movzx eax, word [edx + 0x32]
mov dword [esp + 0x70], eax
test ecx, 0x800
je 0x4f8c4d
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edx
lea ebx, [ebx]
xor ebp, ebp
test ebx, ebx
jle 0x4f8bfb
mov eax, dword [esp + 0xc0]
xor edi, edi
mov dword [esp + 0x54], edi
mov ebx, dword [eax + 4]
add ebx, edi
mov edi, dword [ebx + 4]
and edi, 0xf
je 0x4f8bd8
movsx eax, word [eax + 0x20]
cmp ebp, eax
je 0x4f8bd1
movzx eax, word [ebx + 0xe]
and eax, 0x60
je 0x4f898b
test ecx, ecx
jne 0x4f898b
inc edx
mov dword [esp + 0x18], edx
jmp 0x4f8bd1
cmp dword [esp + 0xe8], 0
mov esi, dword [esp + 0x5c]
je 0x4f89b2
mov esi, dword [esp + 0xe8]
cmp dword [esi + ebp*4], 0
mov esi, dword [esp + 0x5c]
jge 0x4f89b2
test eax, eax
je 0x4f8bd1
cmp byte [esp + 0xdc], 0xb
mov ecx, dword [esp + 0x20]
je 0x4f89e2
movzx edi, byte [esp + 0xdc]
mov edx, dword [esp + 0x18]
cmp edi, 5
jne 0x4f89ec
test ecx, ecx
jne 0x4f89db
cmp word [ebx + 0xc], cx
jne 0x4f89f8
mov edi, 2
jmp 0x4f89f8
cmp edi, 0xb
jne 0x4f89cc
mov edi, 2
test ecx, ecx
je 0x4f89f8
test eax, eax
je 0x4f8bd1
push ebp
push dword [esp + 0xc4]
call fcn.0050e7a0
mov edx, dword [esp + 0xd8]
add esp, 8
cwde
inc edx
add edx, eax
lea eax, [edi - 1]
mov dword [esp + 0x24], edx
cmp eax, 4
ja case.0x4f8a23.4
jmp dword [eax*4 + 0x4facdc]
push edx
push 0x33
push esi
call fcn.00512ce0
inc dword [esp + 0x38]
mov edi, eax
movzx eax, word [ebx + 0xc]
add esp, 0xc
test ax, ax
jne 0x4f8a49
xor eax, eax
jmp 0x4f8a74
mov ecx, dword [esp + 0xc0]
cmp byte [ecx + 0x2b], 0
je 0x4f8a5a
xor eax, eax
jmp 0x4f8a74
mov ecx, dword [ecx + 0x34]
test ecx, ecx
jne 0x4f8a65
xor eax, eax
jmp 0x4f8a74
cmp dword [ecx], eax
jge 0x4f8a6d
xor eax, eax
jmp 0x4f8a74
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 - 0xc]
mov edx, dword [esp + 0x24]
push edx
push eax
push dword [esp + 0xc4]
call fcn.004ec8c0
mov edx, dword [esi + 0x74]
add esp, 0xc
test edi, edi
jns 0x4f8a93
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4f8aa8
mov eax, 0x610b1c
mov dword [eax + 8], edx
jmp 0x4f8bc9
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x4f8bc9
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x4f8aca
mov eax, ecx
mov byte [eax + 0x15], 1
push dword [ebx]
mov eax, dword [esp + 0xc4]
push dword [eax]
push str._s._s
push dword [esp + 0x3c]
call fcn.005000e0
mov ecx, dword [esi + 0x74]
add esp, 0x10
mov ebx, eax
mov edx, dword [esp + 0x24]
cmp dword [esi + 0x78], ecx
jg 0x4f8b0c
push edx
push edi
push 0x513
push 0x45
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f8b37
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0x513
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4f8b4d
push ebx
push 0xfffffffffffffff9
push eax
call fcn.004b4610
add esp, 0xc
jmp 0x4f8b5f
mov eax, dword [esi + 0x74]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x70]
mov byte [eax + ecx*4 - 0x13], 0xf9
mov dword [eax + ecx*4 - 4], ebx
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x4f8bc9
lea ecx, [eax + eax*4]
mov edx, 1
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4f8bc9
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4f8b97
push 0
push dword [esp + 0xe4]
push edx
push 0x32
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f8bc9
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc0]
mov edi, dword [esp + 0x54]
inc ebp
mov ebx, dword [esp + 0x74]
add edi, 0x10
mov dword [esp + 0x54], edi
cmp ebp, ebx
jl 0x4f8957
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xbc]
test edx, edx
jne 0x4f8c03
test eax, eax
je 0x4f8c4d
test ecx, ecx
jne 0x4f8c4d
mov ecx, 1
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x4f8940
mov ebp, dword [esp + 0xc0]
test byte [ebp + 0x1c], 0x60
je 0x4f8940
mov eax, dword [esp + 0xd0]
push ebp
inc eax
push eax
push edi
call fcn.004e7690
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
jmp 0x4f8940
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x24], edx
test edx, edx
je 0x4f8f68
mov eax, dword [ecx + 0x20]
and eax, 0x200
or eax, 0
jne 0x4f8f68
or eax, 0xffffffff
sub eax, dword [esp + 0xd0]
mov dword [edi + 0x34], eax
mov al, byte [esp + 0xdc]
movzx ebp, al
cmp al, 0xb
jne 0x4f8c98
mov ebp, 2
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [edx], ecx
jle 0x4f8f5d
mov ebx, dword [esp + 0xe8]
lea eax, [edx + 0xc]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], 0xfffd
lea esp, [esp]
mov edi, dword [eax - 4]
test ebx, ebx
je 0x4f8d55
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov word [esp + 0xa8], ax
mov dword [esp + 0x98], 0x4a7140
mov dword [esp + 0xac], ebx
test edi, edi
je 0x4f8d3d
lea eax, [esp + 0x94]
push edi
push eax
call fcn.00532c40
mov ax, word [esp + 0xb0]
add esp, 8
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
cmp byte [esp + 0xd8], 0
jne 0x4f8d4c
and ax, word [esp + 0x74]
test ax, ax
je 0x4f8f37
cmp byte [esp + 0x13], 0
jne 0x4f8d7a
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.0050e5c0
add esp, 0xc
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0xbc]
dec dword [eax + 0x38]
mov ebx, dword [eax + 0x38]
test edi, edi
je 0x4f8da7
push 0
push 0
push edi
push dword [esp + 0x3c]
call fcn.004b0720
mov edi, eax
add esp, 0x10
mov eax, dword [esp + 0xbc]
jmp 0x4f8da9
xor edi, edi
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x57], 0
jne 0x4f8dc4
push 0x10
push ebx
push edi
push eax
call fcn.004efd30
mov ecx, dword [esp + 0x40]
add esp, 0x10
test edi, edi
je 0x4f8dd2
push edi
push ecx
call fcn.004ef5e0
add esp, 8
cmp ebp, 4
jne 0x4f8e35
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4f8dfa
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f8f05
mov edx, dword [esp + 0xe0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4f8f05
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
cmp ebp, 5
jne 0x4f8e49
mov ebp, 2
mov ecx, dword [esp + 0xbc]
mov edi, dword [ecx + 8]
test edi, edi
jne 0x4f8e7a
cmp dword [ecx + 0x74], edi
jne 0x4f8e68
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x4f8e68
mov byte [ecx + 0x17], 1
push ecx
call fcn.005137c0
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
cmp ebp, 2
jne 0x4f8e8c
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x4f8e88
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x4f8eab
push 0
push ebp
push 0x113
push 0x46
push edi
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x4f8ede
mov esi, dword [esp + 0x5c]
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0x113
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x58]
push edx
push edi
call fcn.005132c0
mov eax, dword [edi + 0x74]
add esp, 0x10
test eax, eax
jle 0x4f8f05
lea ecx, [eax + eax*4]
mov edx, 3
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4f8f1f
push ebx
push esi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x4f8f28
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + ebx*4], eax
mov ebx, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
inc ecx
add eax, 0x14
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], eax
cmp ecx, dword [edx]
jl 0x4f8cc0
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x30]
mov dword [edi + 0x34], 0
mov edx, dword [esp + 0xec]
mov eax, dword [ebx + 8]
mov dword [esp + 0x54], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x2c], eax
test edx, edx
je 0x4f911e
cmp dword [edx], 0
jne 0x4f8fc4
cmp byte [edx + 0x14], 0
jne 0x4f8fb7
xor eax, eax
mov byte [esp + 0xdc], 4
mov dword [esp + 0xec], eax
jmp 0x4f911e
mov byte [esp + 0xdc], 6
jmp 0x4f911e
test eax, eax
je 0x4f911e
xor edi, edi
mov edi, edi
mov eax, dword [eax + 0x14]
inc edi
test eax, eax
jne 0x4f8fd0
lea ebx, [edi + edi*4]
mov dword [esp + 0x54], 1
add ebx, ebx
mov dword [esp + 0x2c], edi
xor edx, edx
test ecx, ecx
je 0x4f8ffe
push edx
push ebx
push ecx
call fcn.004e9850
add esp, 0xc
mov edx, eax
jmp 0x4f9068
mov eax, ebx
or eax, edx
je 0x4f9066
test edx, edx
ja 0x4f9066
jb 0x4f9012
cmp ebx, 0x7fffff00
jae 0x4f9066
cmp dword [0x606158], edx
je 0x4f9054
mov eax, dword [0x6107f0]
test eax, eax
je 0x4f902d
push eax
call dword [0x6061a8]
add esp, 4
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.004cd7c0
mov eax, dword [0x6107f0]
add esp, 8
test eax, eax
je 0x4f904e
push eax
call dword [0x6061b0]
add esp, 4
mov edx, dword [esp + 0x40]
jmp 0x4f9068
push ebx
call dword [0x606178]
add esp, 4
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x4f906c
xor edx, edx
mov dword [esp + 0x18], edx
test edx, edx
je 0x4facce
push ebx
push 0
push edx
call sub.MSVCRT.dll_memset
mov edx, dword [esp + 0x24]
add esp, 0xc
test edx, edx
je 0x4facce
mov eax, dword [esp + 0xec]
lea ebp, [edx + edi*8]
mov esi, dword [esp + 0xc0]
xor ebx, ebx
mov edi, eax
mov dword [eax + 0x18], edx
cmp dword [edi], 0
je 0x4f90ef
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x4f90e4
mov eax, dword [esi + 8]
xor ecx, ecx
test eax, eax
je 0x4f90cc
lea esp, [esp]
cmp eax, edx
je 0x4f90cc
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x4f90c0
cmp byte [ecx + ebp], 0
mov edx, dword [esp + 0x18]
jne 0x4f90e8
mov byte [ecx + ebp], 1
mov dword [edx + ebx*8], eax
mov dword [edx + ebx*8 + 4], ecx
inc ebx
jmp 0x4f90e8
mov edx, dword [esp + 0x18]
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x4f90a4
mov eax, esi
xor ecx, ecx
mov esi, dword [esp + 0x5c]
mov eax, dword [eax + 8]
test eax, eax
je 0x4f9117
lea edx, [edx + ebx*8]
cmp byte [ecx + ebp], 0
jne 0x4f910f
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x4f9101
mov ebx, dword [esp + 0xc0]
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0xbc]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xb4], eax
mov eax, ecx
and eax, 0x6000
or eax, 0
jne 0x4f9152
mov dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jmp 0x4f9216
and ecx, 0x2000
or ecx, 0
push 0
push 0
je 0x4f9196
push pe_nt_image_headers32
push ebx
push edi
call fcn.0050f040
mov ebp, eax
add esp, 0x14
mov dword [esp + 0x80], ebp
test ebp, ebp
jne 0x4f91b5
push eax
push eax
push ebx
push edi
call fcn.004f3860
add esp, 0x10
test eax, eax
jne 0x4f91b5
mov dword [esp + 0x4c], eax
jmp 0x4f9216
push ebx
push edi
mov dword [esp + 0x90], 0
call fcn.004f3860
mov edx, eax
add esp, 0x10
mov dword [esp + 0x4c], edx
test edx, edx
je 0x4f9216
inc dword [edi + 0x2c]
mov ecx, dword [esi + 0x74]
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x4c], edx
cmp dword [esi + 0x78], ecx
jg 0x4f91d9
push 0
push edx
push 0
push 0x47
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f9208
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x6c], eax
cmp byte [esp + 0xd8], 0
je 0x4f985e
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x4f985e
dec dword [edi + 0x38]
mov al, byte [esp + 0xdc]
mov ebp, dword [edi + 0x38]
movzx ebx, byte [ebx + 0x2a]
mov dword [esp + 0x40], ebp
cmp al, 0xb
je 0x4f924e
movzx ebx, al
jmp 0x4f9258
cmp ebx, 0xb
jne 0x4f9258
mov ebx, 2
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x4f92fa
mov eax, ecx
lea esp, [esp]
cmp dword [eax], 0
je 0x4f9282
cmp dword [eax + 0x1c], 0
je 0x4f9282
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x4f9270
mov dword [esp + 0x58], eax
test eax, eax
je 0x4f9299
xor ebx, ebx
cmp byte [eax + 0x14], bl
setne bl
lea ebx, [ebx*2 + 4]
cmp eax, ecx
je 0x4f92f3
mov edx, dword [esi + 0x74]
mov dword [esp + 0x64], edx
cmp dword [esi + 0x78], edx
jg 0x4f92c0
push 0
push 0
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
mov dword [esp + 0x64], eax
jmp 0x4f92f3
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov al, byte [esp + 0xdc]
cmp ebx, 5
jne 0x4f9378
cmp al, bl
je 0x4f9378
mov eax, dword [esp + 0xc0]
cmp dword [eax + 8], 0
je 0x4f9378
cmp dword [esp + 0x64], 0
jne 0x4f9378
mov edx, dword [esi + 0x74]
cmp dword [esi + 0x78], edx
jg 0x4f9334
push 0
push 0
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x4f936e
mov edi, dword [esp + 0xbc]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [edx + 1]
mov dword [esp + 0x8c], eax
cmp byte [esp + 0x12], 0
je 0x4f93ef
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4f93a3
push dword [esp + 0xd4]
push ebp
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f93d8
mov edx, dword [esp + 0xd0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x4f93ef
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4f941a
push dword [esp + 0xd0]
push ebp
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.004c7840
mov edx, dword [esp + 0xdc]
add esp, 0x14
jmp 0x4f9456
mov edi, dword [esp + 0xd0]
lea eax, [ecx + 1]
mov edx, dword [esp + 0xc8]
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0xbc]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [ebx - 1]
cmp eax, 5
ja case.default.0x4f9462
jmp dword [eax*4 + 0x4facf0]
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x4f9529
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x4f947e
mov eax, edi
push 0xffffffffffffffff
push 1
push 5
push 0
push 1
push dword [esp + 0xe4]
mov byte [eax + 0x14], 1
push dword [esp + 0xe4]
push edx
push dword [esp + 0xa0]
push dword [esp + 0xe4]
push edi
call fcn.004faf20
mov ecx, dword [esi + 0x74]
add esp, 0x2c
cmp dword [esi + 0x78], ecx
jg 0x4f94e2
push 0
push 1
push ebx
push 0x55
push esi
call fcn.004c7840
add esp, 0x14
mov dword [esp + 0x88], 1
mov dword [esp + 0x7c], 1
jmp 0x4f9733
lea eax, [ecx + 1]
mov dword [esp + 0x88], 1
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [esp + 0x7c], 1
mov dword [eax + ecx*4], 0x55
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4f9733
mov ecx, dword [esp + 0xc0]
cmp dword [ecx + 8], 0
je 0x4f9559
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x4f953f
mov eax, edi
push 0xffffffffffffffff
push 0
push dword [esp + 0xd4]
mov byte [eax + 0x14], 1
push edx
push ecx
push edi
call fcn.004fb310
add esp, 0x18
mov dword [esp + 0x7c], 1
jmp 0x4f9733
mov eax, dword [esp + 0xec]
push edx
push 0
push dword [esp + 0xc8]
push eax
push edi
call fcn.00512050
add esp, 0x14
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4f95a4
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f9733
mov edx, dword [esp + 0xe0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4f9733
mov ebx, 2
mov edx, dword [esp + 0xc0]
movzx eax, word [edx + 0x20]
test ax, ax
js 0x4f961a
movsx ecx, ax
mov eax, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edx]
push str._s._s
push dword [edi]
call fcn.005000e0
add esp, 0x10
mov dword [esp + 0x24], 0x613
jmp 0x4f9633
push dword [edx]
push str._s.rowid
push dword [edi]
call fcn.005000e0
add esp, 0xc
mov dword [esp + 0x24], 0xa13
mov edi, dword [edi + 8]
mov ebp, eax
test edi, edi
jne 0x4f965f
mov ecx, dword [esp + 0xbc]
cmp dword [ecx + 0x74], edi
jne 0x4f9654
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x4f9654
mov byte [ecx + 0x17], 1
push ecx
call fcn.005137c0
add esp, 4
mov edi, eax
cmp ebx, 2
jne 0x4f9678
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x4f9674
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x4f9696
push 0
push ebx
push dword [esp + 0x2c]
push 0x46
push edi
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x4f96c9
mov esi, dword [esp + 0x24]
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4f96df
push ebp
push 0xfffffffffffffff9
push eax
call fcn.004b4610
add esp, 0xc
jmp 0x4f9711
test edx, edx
jns 0x4f96e7
mov edx, dword [edi + 0x74]
dec edx
mov eax, dword [edi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
jne 0x4f9704
test ebp, ebp
je 0x4f9711
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xf9
jmp 0x4f9711
push 0xfffffffffffffff9
push ebp
push eax
push edi
call fcn.0052c640
add esp, 0x10
mov eax, dword [edi + 0x74]
mov ebp, dword [esp + 0x40]
test eax, eax
jle 0x4f972c
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esp + 0xbc]
mov ecx, dword [esi + 0xc]
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4f974d
push ebp
push esi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x4f9756
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + ebp*4], eax
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x4f97cb
cmp dword [esp + 0x58], ecx
je 0x4f97cb
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x84], ecx
cmp dword [esi + 0x78], ecx
jg 0x4f9793
push 0
push 0
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
mov dword [esp + 0x84], eax
jmp 0x4f985e
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4f985e
mov ebp, dword [esp + 0x8c]
test ebp, ebp
je 0x4f9865
mov ebx, dword [esi + 0x74]
mov dword [esp + 0x90], ebx
cmp dword [esi + 0x78], ebx
jg 0x4f9803
push 0
push 0
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
mov dword [esp + 0x90], eax
jmp 0x4f9836
lea eax, [ebx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
lea ecx, [ebp - 1]
test ecx, ecx
jns 0x4f9843
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4f9852
mov eax, 0x610b1c
jmp 0x4f985b
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xec]
cmp dword [esp + 0x54], 0
je 0x4f9877
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 4]
mov ebx, dword [eax]
jmp 0x4f987d
mov ebx, dword [esp + 0x2c]
xor ebp, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebp
test ebx, ebx
je 0x4fa8d5
lea ecx, [ecx]
mov eax, dword [esp + 0xc4]
cmp dword [eax + ebp*4], 0
je 0x4fa879
test ecx, ecx
je 0x4f98f2
mov eax, ecx
cmp dword [eax], 0
je 0x4f98b8
cmp dword [eax + 0x1c], ebx
je 0x4f98b8
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x4f98a7
cmp dword [esp + 0x64], 0
mov dword [esp + 0x58], eax
je 0x4f98f2
cmp eax, ecx
jne 0x4f98f2
mov eax, dword [esp + 0x64]
mov ecx, eax
mov edx, dword [esi + 0x74]
test eax, eax
jns 0x4f98d7
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4f98e6
mov eax, 0x610b1c
jmp 0x4f98ef
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
dec dword [edi + 0x38]
cmp byte [esp + 0x13], 0
mov eax, dword [edi + 0x38]
mov dword [esp + 0x20], eax
jne 0x4f9921
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.0050e5c0
add esp, 0xc
mov byte [esp + 0x13], 1
add ebp, dword [esp + 0xcc]
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x68], ebp
je 0x4f99f7
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc4]
mov ecx, dword [esi + 0x74]
mov edx, dword [eax + edx*4]
cmp dword [esi + 0x78], ecx
jg 0x4f995e
push 0
push edx
push 0
push 0x4a
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f9991
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0x4a
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
or eax, 0xffffffff
sub eax, dword [esp + 0xd0]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x24]
mov ebx, dword [edi]
test eax, eax
je 0x4f99b9
push 0
push 0
push eax
push ebx
call fcn.004b0720
add esp, 0x10
mov edi, eax
jmp 0x4f99bb
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x4f99d7
push 0x10
push dword [esp + 0x24]
push edi
push dword [esp + 0xc8]
call fcn.004ef900
add esp, 0x10
test edi, edi
je 0x4f99e5
push edi
push ebx
call fcn.004ef5e0
add esp, 8
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x14]
mov dword [edi + 0x34], 0
mov ecx, dword [esp + 0xc4]
xor edx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
inc eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], eax
cmp dx, word [ebx + 0x34]
jae 0x4f9be4
xor ebx, ebx
mov ebp, eax
mov dword [esp + 0x38], ebx
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
movsx ecx, word [eax + ecx*2]
cmp ecx, 0xfffffffe
jne 0x4f9a9e
or eax, 0xffffffff
sub eax, dword [esp + 0xd0]
mov dword [edi + 0x34], eax
mov eax, dword [edx + 0x28]
mov eax, dword [eax + ebx + 8]
mov ebx, dword [edi]
test eax, eax
je 0x4f9a60
push 0
push 0
push eax
push ebx
call fcn.004b0720
add esp, 0x10
mov edi, eax
jmp 0x4f9a62
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x4f9a79
push ebp
push edi
push dword [esp + 0xc4]
call fcn.004ec870
add esp, 0xc
test edi, edi
je 0x4f9a87
push edi
push ebx
call fcn.004ef5e0
add esp, 8
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x38]
mov dword [edi + 0x34], 0
jmp 0x4f9bb7
cmp ecx, 0xffffffff
je 0x4f9b66
mov eax, dword [esp + 0xc0]
movsx eax, word [eax + 0x20]
cmp ecx, eax
je 0x4f9b66
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x20
je 0x4f9b1c
test cx, cx
js 0x4f9b1c
movsx ecx, cx
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x4f9af3
mov eax, dword [eax + 4]
mov edi, ecx
add eax, 0xe
nop
test byte [eax], 0x20
jne 0x4f9ae6
inc edx
add eax, 0x10
dec ecx
jne 0x4f9ae0
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, edi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x4f9b17
mov eax, dword [esp + 0xc0]
mov ax, word [eax + 0x24]
sub ax, dx
add ax, di
movzx eax, ax
jmp 0x4f9b1f
movzx eax, dx
jmp 0x4f9b1f
movzx eax, cx
mov edx, dword [esp + 0xd0]
mov ecx, dword [esi + 0x74]
inc edx
cwde
add edx, eax
cmp dword [esi + 0x78], ecx
jg 0x4f9b4a
push 0
push ebp
push edx
push 0x50
push esi
call fcn.004c7840
mov edi, dword [esp + 0xd0]
add esp, 0x14
jmp 0x4f9bb7
mov edi, dword [esp + 0xbc]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x50
jmp 0x4f9b9f
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4f9b85
push 0
push ebp
push dword [esp + 0xd8]
push 0x51
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f9bb7
mov edx, dword [esp + 0xd0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esp + 0x14]
add ebx, 0x14
mov ecx, dword [esp + 0x40]
inc ebp
inc ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x40], ecx
movzx eax, word [eax + 0x34]
cmp ecx, eax
jl 0x4f9a24
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x1c]
movzx edi, word [ebx + 0x34]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4f9c0e
push edx
push edi
push eax
push 0x60
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f9c3d
mov ebp, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], ebp
mov ebp, dword [esp + 0x68]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x12], 0
mov edx, dword [esp + 0x28]
je 0x4f9c85
cmp edx, ebx
jne 0x4f9c85
cmp byte [esp + 0xd8], 0
jne 0x4f9c85
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4f9c77
push edx
push esi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x4fa875
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
jmp 0x4fa875
movzx ebx, byte [ebx + 0x36]
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x4f9cb2
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4f9c77
push edx
push esi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x4fa875
mov al, byte [esp + 0xdc]
cmp al, 0xb
je 0x4f9cc2
movzx ebx, al
jmp 0x4f9ccc
cmp ebx, 0xb
jne 0x4f9cd0
mov ebx, 2
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4f9ceb
xor ebx, ebx
cmp byte [eax + 0x14], bl
setne bl
lea ebx, [ebx*2 + 4]
mov dword [esp + 0x60], ebx
cmp dword [esp + 0x1c], 0
jne 0x4f9d42
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x14], 0
jne 0x4f9d42
cmp edx, ecx
jne 0x4f9d42
cmp ebx, 5
jne 0x4f9d42
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
and eax, 0x2000
mov dword [esp + 0x40], eax
lea eax, [ebx - 5]
jne 0x4f9d1e
test eax, eax
je 0x4f9d79
mov edi, dword [esp + 0xc0]
push 0
push 0
push pe_nt_image_headers32
push edi
push dword [esp + 0xcc]
call fcn.0050f040
add esp, 0x14
test eax, eax
je 0x4f9d80
mov eax, dword [esp + 0x14]
mov edx, dword [esi + 0x74]
mov dword [esp + 0x3c], edx
movzx edi, word [eax + 0x32]
cmp dword [esi + 0x78], edx
jg 0x4f9dde
push dword [esp + 0x48]
push dword [esp + 0x24]
push ebp
push 0x1d
push esi
call fcn.004c7840
mov edx, eax
add esp, 0x14
mov dword [esp + 0x3c], edx
jmp 0x4f9e11
mov edi, dword [esp + 0xc0]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
and eax, 0x4000
mov dword [esp + 0x40], eax
mov eax, 0
jne 0x4f9d9b
test eax, eax
je 0x4f9db9
cmp dword [edi + 0x30], eax
jne 0x4f9d42
mov eax, dword [edi + 0x3c]
push 0
push dword [edi]
add eax, 0x38
push eax
call fcn.004b2240
add esp, 0xc
cmp dword [eax + 8], 0
jne 0x4f9d42
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4f9c77
push edx
push esi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x4fa875
mov ebx, dword [esp + 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x4f9e28
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edi, dword [esp + 0x14]
cmp edi, dword [esp + 0x28]
jne 0x4f9e3c
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], edx
jmp 0x4f9e9d
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0xbc]
cmp eax, 1
jne 0x4f9e6c
mov al, byte [edi + 0x13]
test al, al
jne 0x4f9e5b
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
jmp 0x4f9e95
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x98]
jmp 0x4f9e95
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x50], edx
cmp eax, ecx
jg 0x4f9e88
add eax, edx
sub ecx, dword [esp + 0x70]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], ecx
jmp 0x4f9e99
mov eax, dword [edi + 0x2c]
lea edx, [eax + 1]
add eax, dword [esp + 0x70]
mov dword [edi + 0x2c], eax
mov dword [esp + 0x50], edx
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
jne 0x4f9ead
cmp ebx, 5
jne 0x4fa272
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x80
jne 0x4f9f87
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4f9ede
push 0
push edx
push ebp
push 0x8d
push esi
call fcn.004c7840
mov edx, dword [esp + 0x64]
add esp, 0x14
jmp 0x4f9f09
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x8d
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x12], 0
je 0x4fa272
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4f9f35
push dword [esp + 0xd4]
push dword [esp + 0x24]
push edx
push 0x35
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4f9f67
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x4fa272
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4fa272
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x4fa036
xor ecx, ecx
xor ebp, ebp
cmp cx, word [eax + 0x32]
jae 0x4fa036
mov ebx, edx
movzx edx, word [edi + 0x34]
xor ecx, ecx
test edx, edx
jle 0x4f9fcd
mov eax, dword [eax + 4]
movzx edi, word [eax + ebp*2]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
jmp 0x4f9fc0
cmp di, word [eax]
je 0x4f9fee
inc ecx
add eax, 2
cmp ecx, edx
jl 0x4f9fc0
or eax, 0xffffffff
mov ecx, dword [esi + 0x74]
movsx edx, ax
cmp dword [esi + 0x78], ecx
jg 0x4f9ff3
push ebx
push edx
push dword [esp + 0x70]
push 0x5d
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fa01e
movzx eax, cx
jmp 0x4f9fd0
mov edi, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x28]
inc ebp
mov edi, dword [esp + 0x14]
inc ebx
movzx eax, word [ecx + 0x32]
cmp ebp, eax
mov eax, ecx
jl 0x4f9fa3
cmp byte [esp + 0x12], 0
je 0x4fa272
movzx ecx, word [eax + 0x32]
mov eax, dword [esi + 0x74]
add eax, ecx
mov dword [esp + 0x78], 0x34
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
mov eax, dword [esp + 0x48]
je 0x4fa067
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ebx
test ecx, ecx
jle 0x4fa272
mov ecx, dword [esp + 0x28]
lea ecx, [ecx]
mov eax, dword [ecx + 0x20]
mov edi, dword [eax + ebx*4]
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax]
mov bl, byte [ecx + 0x54]
mov bh, byte [ecx + 0xb1]
mov byte [esp + 0xb0], bl
test edi, edi
je 0x4fa17b
movzx eax, bh
push eax
push edi
push ecx
call fcn.004b20d0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x4fa0c8
movzx eax, bl
lea eax, [eax + eax*4]
lea ebp, [ebp + eax*4]
add ebp, 0xffffffec
mov eax, dword [esp + 0xbc]
test bh, bh
jne 0x4fa0f1
test ebp, ebp
je 0x4fa0dd
cmp dword [ebp + 0xc], 0
jne 0x4fa0f1
push edi
push ebp
push dword [esp + 0xb8]
push eax
call fcn.004fb4b0
add esp, 0x10
mov ebp, eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov ecx, dword [eax + 4]
movsx edx, word [ecx + ebx*2]
movzx ecx, word [eax + 0x32]
dec ecx
cmp ebx, ecx
jne 0x4fa119
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], eax
mov dword [esp + 0x78], 0x35
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x20
je 0x4fa18c
test dx, dx
js 0x4fa18c
movsx ecx, dx
xor ebx, ebx
xor edi, edi
test ecx, ecx
jle 0x4fa153
mov eax, dword [eax + 4]
mov ebx, ecx
add eax, 0xe
mov edi, edi
test byte [eax], 0x20
jne 0x4fa146
inc edi
add eax, 0x10
dec ecx
jne 0x4fa140
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, ebx
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x4fa183
mov eax, dword [esp + 0xc0]
mov ax, word [eax + 0x24]
sub ax, di
add ax, bx
mov ebx, dword [esp + 0x24]
movzx eax, ax
jmp 0x4fa18f
mov ebp, dword [ecx + 8]
jmp 0x4fa0cf
mov ebx, dword [esp + 0x24]
movzx eax, di
jmp 0x4fa18f
movzx eax, dx
mov edi, dword [esp + 0xd4]
mov edx, dword [esi + 0x74]
inc edi
cwde
add edi, eax
cmp dword [esi + 0x78], edx
jg 0x4fa1c2
mov eax, dword [esp + 0x40]
add eax, ebx
push eax
push dword [esp + 0x3c]
push edi
push dword [esp + 0x84]
push esi
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x4fa1fe
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x78]
mov byte [ecx], al
xor eax, eax
mov word [ecx + 2], ax
mov eax, dword [esp + 0x38]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x40]
add eax, ebx
mov dword [ecx + 0xc], eax
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4fa214
push ebp
push 0xfffffffffffffffe
push eax
call fcn.004b4610
add esp, 0xc
jmp 0x4fa246
test edx, edx
jns 0x4fa21c
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x4fa23b
push 0xfffffffffffffffe
push ebp
push eax
push esi
call fcn.0052c640
add esp, 0x10
jmp 0x4fa246
test ebp, ebp
je 0x4fa246
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xfe
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x4fa25d
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esp + 0x28]
inc ebx
mov dword [esp + 0x24], ebx
movzx eax, word [ecx + 0x32]
cmp ebx, eax
jl 0x4fa080
mov ecx, dword [esp + 0x60]
lea eax, [ecx - 1]
cmp eax, 5
ja case.0x4fa282.5
jmp dword [eax*4 + 0x4fad08]
push dword [esp + 0x14]
mov ebx, dword [esp + 0xc0]
push ecx
push ebx
call fcn.0050f200
add esp, 0xc
jmp 0x4fa769
push dword [esp + 0x68]
mov eax, dword [esp + 0xf0]
push dword [esp + 0x18]
mov ebx, dword [esp + 0xc4]
push dword [esp + 0xc8]
push eax
push ebx
call fcn.00512050
add esp, 0x14
jmp 0x4fa2d3
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4fa2f6
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fa769
mov edx, dword [esp + 0xe0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4fa769
mov ebp, dword [esi + 0x74]
mov edi, dword [esp + 0x3c]
sub ebp, edi
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x40], ebp
test edx, edx
je 0x4fa361
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x4fa356
mov eax, ebx
inc dword [esp + 0x88]
mov byte [eax + 0x14], 1
cmp dword [esp + 0x80], 0
je 0x4fa3cb
cmp byte [esp + 0x12], 0
je 0x4fa3cb
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4fa395
push 0
push 0
push dword [esp + 0xd0]
push 0xa6
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fa3cb
mov edx, dword [esp + 0xc8]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xa6
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x18], eax
sete al
movzx eax, al
push eax
push 5
push 0
push dword [esp + 0x80]
push dword [esp + 0x64]
push dword [esp + 0xe4]
push dword [esp + 0xe4]
push dword [esp + 0xa0]
push dword [esp + 0xe4]
push ebx
call fcn.004faf20
add esp, 0x2c
cmp dword [esp + 0x80], 0
je 0x4fa47c
cmp byte [esp + 0x12], 0
je 0x4fa47c
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4fa446
push 0
push 0
push dword [esp + 0xd0]
push 0xa7
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fa47c
mov edx, dword [esp + 0xc8]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xa7
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x4fa761
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4fa4a2
push 0
push 1
push edx
push 0x55
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fa4d5
mov edi, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x55
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
mov dword [esp + 0x78], edx
cmp dword [esi + 0x78], edx
jg 0x4fa4f8
push 0
push 0
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
mov dword [esp + 0x78], eax
jmp 0x4fa52b
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x34]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4fa549
push edx
push esi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x4fa552
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
dec dword [ebx + 0x38]
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x24], 0
je 0x4fa5ba
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x74]
dec edx
cmp dword [esi + 0x78], ecx
jg 0x4fa587
push 0
push dword [esp + 0x38]
push edx
push 0x32
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fa5ba
mov ebp, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test ebp, ebp
jle 0x4fa726
mov ecx, edi
test edi, edi
jns 0x4fa5cc
mov ecx, dword [esi + 0x74]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4fa5db
mov eax, 0x610b1c
jmp 0x4fa5e4
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov ebp, dword [eax + 8]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x7c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x38], edx
cmp cl, 0x8d
je 0x4fa705
movzx eax, cl
mov dword [esp + 0x24], eax
test byte [eax + 0x56b208], 1
je 0x4fa61e
mov ebp, dword [esp + 0x34]
mov edx, dword [esi + 0x74]
shr ecx, 8
movsx ebx, cl
mov dword [esp + 0x60], ebx
cmp dword [esi + 0x78], edx
jg 0x4fa64a
push dword [esp + 0x38]
push ebp
push dword [esp + 0x84]
push eax
push esi
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x4fa689
mov ebx, dword [esp + 0x24]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov byte [eax + ecx*4], bl
xor ebx, ebx
mov word [eax + ecx*4 + 2], bx
mov ebx, dword [esp + 0x7c]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [esp + 0x60]
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4fa6a3
cmp ebx, 0xfffffff4
je 0x4fa6eb
push edi
push ebx
push eax
call fcn.004b4610
add esp, 0xc
jmp 0x4fa6eb
test edx, edx
jns 0x4fa6ab
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*4]
test ebx, ebx
jns 0x4fa6df
cmp byte [eax + 1], 0
jne 0x4fa6df
cmp ebx, 0xfffffffd
jne 0x4fa6cb
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
jmp 0x4fa6eb
test edi, edi
je 0x4fa6eb
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
cmp ebx, 0xfffffff4
jne 0x4fa6eb
inc dword [edi + 0xc]
jmp 0x4fa6eb
push ebx
push edi
push eax
push esi
call fcn.0052c640
add esp, 0x10
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x4fa705
mov ecx, dword [esi + 0x70]
lea edx, [eax + eax*4]
mov ax, word [esp + 0x96]
mov word [ecx + edx*4 - 0x12], ax
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
dec ebp
inc edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], edi
test ebp, ebp
jg 0x4fa5c2
mov ebx, dword [esp + 0xbc]
push dword [esp + 0x14]
push 2
push ebx
call fcn.0050f200
mov ecx, dword [esp + 0x84]
add esp, 0xc
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x4fa746
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4fa755
mov eax, 0x610b1c
jmp 0x4fa75e
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov dword [esp + 0x7c], 1
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4fa787
push edx
push esi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x4fa790
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0x48]
je 0x4fa7c8
mov eax, dword [esp + 0x70]
cmp eax, 1
jne 0x4fa7bd
test ecx, ecx
je 0x4fa7c8
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4fa7c8
movzx eax, al
mov dword [ebx + eax*4 + 0x98], ecx
inc byte [ebx + 0x13]
jmp 0x4fa7c8
cmp eax, dword [ebx + 0x1c]
jle 0x4fa7c8
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], ecx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4fa875
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x4fa875
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4fa7f9
cmp dword [eax], 0
je 0x4fa7f9
cmp dword [eax + 0x1c], 0
jne 0x4fa875
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 0x74]
inc edx
cmp dword [esi + 0x78], ecx
jg 0x4fa818
push 0
push edx
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fa847
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
test ebx, ebx
jns 0x4fa851
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4fa860
mov eax, 0x610b1c
jmp 0x4fa869
mov eax, dword [esi + 0x70]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 8], edx
mov dword [esp + 0x84], ecx
mov ebp, dword [esp + 0x1c]
cmp dword [esp + 0x54], 0
je 0x4fa8a8
mov eax, dword [esp + 0x74]
inc eax
mov ebp, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x1c], ebp
cmp ebp, dword [esp + 0x2c]
jge 0x4fa8d5
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + ebp*8]
lea eax, [eax + ebp*8]
mov ebp, dword [eax + 4]
mov dword [esp + 0x14], ebx
jmp 0x4fa8ba
mov eax, dword [esp + 0x2c]
inc ebp
mov eax, dword [eax + 0x14]
mov ebx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ebp
test ebx, ebx
je 0x4fa8d5
mov edi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xec]
jmp 0x4f9890
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x4fa955
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4fa8fa
push 0
push edx
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fa929
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x90]
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x4fa93a
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4fa949
mov eax, 0x610b1c
jmp 0x4fa952
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
cmp dword [esp + 0x88], 0
je 0x4fac48
mov ecx, dword [esi + 0x74]
mov edx, dword [esp + 0x4c]
cmp dword [esi + 0x78], ecx
jg 0x4fa983
push 0
push dword [esp + 0x38]
push edx
push 0x14
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fa9b2
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x14
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x6c]
jne 0x4fabd8
cmp byte [esp + 0x12], 0
je 0x4faa38
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4fa9ec
push dword [esp + 0xd4]
push edi
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4faa21
mov edx, dword [esp + 0xd0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x4faa38
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4faa5c
push dword [esp + 0xd0]
push edi
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4faa91
mov edx, dword [esp + 0xc8]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xd0]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc0]
movzx eax, word [edx + 0x20]
test ax, ax
js 0x4faacb
movsx ecx, ax
mov eax, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
mov eax, dword [esp + 0xc0]
push dword [edx]
push str._s._s
push dword [eax]
call fcn.005000e0
add esp, 0x10
mov ebp, 0x613
jmp 0x4faae8
push dword [edx]
mov eax, dword [esp + 0xc0]
push str._s.rowid
push dword [eax]
call fcn.005000e0
add esp, 0xc
mov ebp, 0xa13
mov ecx, dword [esp + 0xbc]
mov ebx, eax
mov edi, dword [ecx + 8]
test edi, edi
jne 0x4fab1b
cmp dword [ecx + 0x74], edi
jne 0x4fab09
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x4fab09
mov byte [ecx + 0x17], 1
push ecx
call fcn.005137c0
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x4fab24
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x4fab44
push 0
push 2
push ebp
push 0x46
push edi
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x4fab77
mov esi, dword [esp + 0x5c]
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4fab8d
push ebx
push 0xfffffffffffffff9
push eax
call fcn.004b4610
add esp, 0xc
jmp 0x4fabbf
test edx, edx
jns 0x4fab95
mov edx, dword [edi + 0x74]
dec edx
mov eax, dword [edi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
jne 0x4fabb2
test ebx, ebx
je 0x4fabbf
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0xf9
jmp 0x4fabbf
push 0xfffffffffffffff9
push ebx
push eax
push edi
call fcn.0052c640
add esp, 0x10
mov eax, dword [edi + 0x74]
test eax, eax
jle 0x4fac21
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4fac21
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4fabf2
push 0
push edi
push 0
push 0xb
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4fac21
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x34]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4fac3f
push edx
push esi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x4fac48
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
mov ebp, dword [esp + 0xc0]
test byte [ebp + 0x1c], 0x80
jne 0x4facc1
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0xd0]
movsx edi, word [ebp + 0x24]
inc ebx
mov edx, dword [ecx + eax*4]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4fac87
push edx
push edi
push ebx
push 0x60
push esi
call fcn.004c7840
add esp, 0x14
jmp 0x4facae
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x13], 0
jne 0x4facc1
push 0
push ebp
push esi
call fcn.0050e5c0
add esp, 0xc
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x7c]
mov dword [eax], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret