Function at 0x513ea0
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 0x513f33
mov dword [esp + 0x28], 0
mov dword [esp + 0x70], 1
jmp 0x513f5c
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
test edx, edx
je 0x513f54
mov edi, edi
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x513f50
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x513f40
mov dword [esp + 0x28], edx
movzx eax, word [edx + 0x32]
mov dword [esp + 0x70], eax
test ecx, 0x800
je 0x51428d
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 0x51423b
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 0x514218
movsx eax, word [eax + 0x20]
cmp ebp, eax
je 0x514211
movzx eax, word [ebx + 0xe]
and eax, 0x60
je 0x513fcb
test ecx, ecx
jne 0x513fcb
inc edx
mov dword [esp + 0x18], edx
jmp 0x514211
cmp dword [esp + 0xe8], 0
mov esi, dword [esp + 0x5c]
je 0x513ff2
mov esi, dword [esp + 0xe8]
cmp dword [esi + ebp*4], 0
mov esi, dword [esp + 0x5c]
jge 0x513ff2
test eax, eax
je 0x514211
cmp byte [esp + 0xdc], 0xb
mov ecx, dword [esp + 0x20]
je 0x514022
movzx edi, byte [esp + 0xdc]
mov edx, dword [esp + 0x18]
cmp edi, 5
jne 0x51402c
test ecx, ecx
jne 0x51401b
cmp word [ebx + 0xc], cx
jne 0x514038
mov edi, 2
jmp 0x514038
cmp edi, 0xb
jne 0x51400c
mov edi, 2
test ecx, ecx
je 0x514038
test eax, eax
je 0x514211
push ebp
push dword [esp + 0xc4]
call fcn.00529de0
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.0x514063.4
jmp dword [eax*4 + 0x51631c]
push edx
push 0x33
push esi
call fcn.0052e320
inc dword [esp + 0x38]
mov edi, eax
movzx eax, word [ebx + 0xc]
add esp, 0xc
test ax, ax
jne 0x514089
xor eax, eax
jmp 0x5140b4
mov ecx, dword [esp + 0xc0]
cmp byte [ecx + 0x2b], 0
je 0x51409a
xor eax, eax
jmp 0x5140b4
mov ecx, dword [ecx + 0x34]
test ecx, ecx
jne 0x5140a5
xor eax, eax
jmp 0x5140b4
cmp dword [ecx], eax
jge 0x5140ad
xor eax, eax
jmp 0x5140b4
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.00507f00
mov edx, dword [esi + 0x74]
add esp, 0xc
test edi, edi
jns 0x5140d3
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x5140e8
mov eax, 0x784c9c
mov dword [eax + 8], edx
jmp 0x514209
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x514209
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x51410a
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.0051b720
mov ecx, dword [esi + 0x74]
add esp, 0x10
mov ebx, eax
mov edx, dword [esp + 0x24]
cmp dword [esi + 0x78], ecx
jg 0x51414c
push edx
push edi
push 0x513
push 0x45
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x514177
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 0x51418d
push ebx
push 0xfffffffffffffff9
push eax
call fcn.004cfc50
add esp, 0xc
jmp 0x51419f
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 0x514209
lea ecx, [eax + eax*4]
mov edx, 1
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x514209
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5141d7
push 0
push dword [esp + 0xe4]
push edx
push 0x32
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x514209
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 0x513f97
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xbc]
test edx, edx
jne 0x514243
test eax, eax
je 0x51428d
test ecx, ecx
jne 0x51428d
mov ecx, 1
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x513f80
mov ebp, dword [esp + 0xc0]
test byte [ebp + 0x1c], 0x60
je 0x513f80
mov eax, dword [esp + 0xd0]
push ebp
inc eax
push eax
push edi
call fcn.00502cd0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
jmp 0x513f80
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x24], edx
test edx, edx
je 0x5145a8
mov eax, dword [ecx + 0x20]
and eax, 0x200
or eax, 0
jne 0x5145a8
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 0x5142d8
mov ebp, 2
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [edx], ecx
jle 0x51459d
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 0x514395
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], 0x4c2780
mov dword [esp + 0xac], ebx
test edi, edi
je 0x51437d
lea eax, [esp + 0x94]
push edi
push eax
call fcn.0054e280
mov ax, word [esp + 0xb0]
add esp, 8
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
cmp byte [esp + 0xd8], 0
jne 0x51438c
and ax, word [esp + 0x74]
test ax, ax
je 0x514577
cmp byte [esp + 0x13], 0
jne 0x5143ba
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.00529c00
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 0x5143e7
push 0
push 0
push edi
push dword [esp + 0x3c]
call fcn.004cbd60
mov edi, eax
add esp, 0x10
mov eax, dword [esp + 0xbc]
jmp 0x5143e9
xor edi, edi
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x57], 0
jne 0x514404
push 0x10
push ebx
push edi
push eax
call fcn.0050b370
mov ecx, dword [esp + 0x40]
add esp, 0x10
test edi, edi
je 0x514412
push edi
push ecx
call fcn.0050ac20
add esp, 8
cmp ebp, 4
jne 0x514475
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x51443a
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x514545
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 0x514545
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
cmp ebp, 5
jne 0x514489
mov ebp, 2
mov ecx, dword [esp + 0xbc]
mov edi, dword [ecx + 8]
test edi, edi
jne 0x5144ba
cmp dword [ecx + 0x74], edi
jne 0x5144a8
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x5144a8
mov byte [ecx + 0x17], 1
push ecx
call fcn.0052ee00
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
cmp ebp, 2
jne 0x5144cc
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x5144c8
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x5144eb
push 0
push ebp
push 0x113
push 0x46
push edi
call fcn.004e2e80
add esp, 0x14
mov edx, eax
jmp 0x51451e
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.0052e900
mov eax, dword [edi + 0x74]
add esp, 0x10
test eax, eax
jle 0x514545
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 0x51455f
push ebx
push esi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x514568
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 0x514300
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 0x51475e
cmp dword [edx], 0
jne 0x514604
cmp byte [edx + 0x14], 0
jne 0x5145f7
xor eax, eax
mov byte [esp + 0xdc], 4
mov dword [esp + 0xec], eax
jmp 0x51475e
mov byte [esp + 0xdc], 6
jmp 0x51475e
test eax, eax
je 0x51475e
xor edi, edi
mov edi, edi
mov eax, dword [eax + 0x14]
inc edi
test eax, eax
jne 0x514610
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 0x51463e
push edx
push ebx
push ecx
call fcn.00504e90
add esp, 0xc
mov edx, eax
jmp 0x5146a8
mov eax, ebx
or eax, edx
je 0x5146a6
test edx, edx
ja 0x5146a6
jb 0x514652
cmp ebx, 0x7fffff00
jae 0x5146a6
cmp dword [0x77f9b8], edx
je 0x514694
mov eax, dword [0x784970]
test eax, eax
je 0x51466d
push eax
call dword [0x77fa08]
add esp, 4
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.004e8e00
mov eax, dword [0x784970]
add esp, 8
test eax, eax
je 0x51468e
push eax
call dword [0x77fa10]
add esp, 4
mov edx, dword [esp + 0x40]
jmp 0x5146a8
push ebx
call dword [0x77f9d8]
add esp, 4
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x5146ac
xor edx, edx
mov dword [esp + 0x18], edx
test edx, edx
je 0x51630e
push ebx
push 0
push edx
call sub.MSVCRT.dll_memset
mov edx, dword [esp + 0x24]
add esp, 0xc
test edx, edx
je 0x51630e
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 0x51472f
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x514724
mov eax, dword [esi + 8]
xor ecx, ecx
test eax, eax
je 0x51470c
lea esp, [esp]
cmp eax, edx
je 0x51470c
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x514700
cmp byte [ecx + ebp], 0
mov edx, dword [esp + 0x18]
jne 0x514728
mov byte [ecx + ebp], 1
mov dword [edx + ebx*8], eax
mov dword [edx + ebx*8 + 4], ecx
inc ebx
jmp 0x514728
mov edx, dword [esp + 0x18]
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x5146e4
mov eax, esi
xor ecx, ecx
mov esi, dword [esp + 0x5c]
mov eax, dword [eax + 8]
test eax, eax
je 0x514757
lea edx, [edx + ebx*8]
cmp byte [ecx + ebp], 0
jne 0x51474f
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x514741
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 0x514792
mov dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jmp 0x514856
and ecx, 0x2000
or ecx, 0
push 0
push 0
je 0x5147d6
push pe_nt_image_headers32
push ebx
push edi
call fcn.0052a680
mov ebp, eax
add esp, 0x14
mov dword [esp + 0x80], ebp
test ebp, ebp
jne 0x5147f5
push eax
push eax
push ebx
push edi
call fcn.0050eea0
add esp, 0x10
test eax, eax
jne 0x5147f5
mov dword [esp + 0x4c], eax
jmp 0x514856
push ebx
push edi
mov dword [esp + 0x90], 0
call fcn.0050eea0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x4c], edx
test edx, edx
je 0x514856
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 0x514819
push 0
push edx
push 0
push 0x47
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x514848
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 0x514e9e
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x514e9e
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 0x51488e
movzx ebx, al
jmp 0x514898
cmp ebx, 0xb
jne 0x514898
mov ebx, 2
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x51493a
mov eax, ecx
lea esp, [esp]
cmp dword [eax], 0
je 0x5148c2
cmp dword [eax + 0x1c], 0
je 0x5148c2
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x5148b0
mov dword [esp + 0x58], eax
test eax, eax
je 0x5148d9
xor ebx, ebx
cmp byte [eax + 0x14], bl
setne bl
lea ebx, [ebx*2 + 4]
cmp eax, ecx
je 0x514933
mov edx, dword [esi + 0x74]
mov dword [esp + 0x64], edx
cmp dword [esi + 0x78], edx
jg 0x514900
push 0
push 0
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
mov dword [esp + 0x64], eax
jmp 0x514933
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 0x5149b8
cmp al, bl
je 0x5149b8
mov eax, dword [esp + 0xc0]
cmp dword [eax + 8], 0
je 0x5149b8
cmp dword [esp + 0x64], 0
jne 0x5149b8
mov edx, dword [esi + 0x74]
cmp dword [esi + 0x78], edx
jg 0x514974
push 0
push 0
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
mov edx, eax
jmp 0x5149ae
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 0x514a2f
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5149e3
push dword [esp + 0xd4]
push ebp
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x514a18
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 0x514a2f
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 0x514a5a
push dword [esp + 0xd0]
push ebp
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.004e2e80
mov edx, dword [esp + 0xdc]
add esp, 0x14
jmp 0x514a96
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.0x514aa2
jmp dword [eax*4 + 0x516330]
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x514b69
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x514abe
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.00516560
mov ecx, dword [esi + 0x74]
add esp, 0x2c
cmp dword [esi + 0x78], ecx
jg 0x514b22
push 0
push 1
push ebx
push 0x55
push esi
call fcn.004e2e80
add esp, 0x14
mov dword [esp + 0x88], 1
mov dword [esp + 0x7c], 1
jmp 0x514d73
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 0x514d73
mov ecx, dword [esp + 0xc0]
cmp dword [ecx + 8], 0
je 0x514b99
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x514b7f
mov eax, edi
push 0xffffffffffffffff
push 0
push dword [esp + 0xd4]
mov byte [eax + 0x14], 1
push edx
push ecx
push edi
call fcn.00516950
add esp, 0x18
mov dword [esp + 0x7c], 1
jmp 0x514d73
mov eax, dword [esp + 0xec]
push edx
push 0
push dword [esp + 0xc8]
push eax
push edi
call fcn.0052d690
add esp, 0x14
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x514be4
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x514d73
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 0x514d73
mov ebx, 2
mov edx, dword [esp + 0xc0]
movzx eax, word [edx + 0x20]
test ax, ax
js 0x514c5a
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.0051b720
add esp, 0x10
mov dword [esp + 0x24], 0x613
jmp 0x514c73
push dword [edx]
push str._s.rowid
push dword [edi]
call fcn.0051b720
add esp, 0xc
mov dword [esp + 0x24], 0xa13
mov edi, dword [edi + 8]
mov ebp, eax
test edi, edi
jne 0x514c9f
mov ecx, dword [esp + 0xbc]
cmp dword [ecx + 0x74], edi
jne 0x514c94
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x514c94
mov byte [ecx + 0x17], 1
push ecx
call fcn.0052ee00
add esp, 4
mov edi, eax
cmp ebx, 2
jne 0x514cb8
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x514cb4
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x514cd6
push 0
push ebx
push dword [esp + 0x2c]
push 0x46
push edi
call fcn.004e2e80
add esp, 0x14
mov edx, eax
jmp 0x514d09
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 0x514d1f
push ebp
push 0xfffffffffffffff9
push eax
call fcn.004cfc50
add esp, 0xc
jmp 0x514d51
test edx, edx
jns 0x514d27
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 0x514d44
test ebp, ebp
je 0x514d51
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xf9
jmp 0x514d51
push 0xfffffffffffffff9
push ebp
push eax
push edi
call fcn.00547c80
add esp, 0x10
mov eax, dword [edi + 0x74]
mov ebp, dword [esp + 0x40]
test eax, eax
jle 0x514d6c
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 0x514d8d
push ebp
push esi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x514d96
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 0x514e0b
cmp dword [esp + 0x58], ecx
je 0x514e0b
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x84], ecx
cmp dword [esi + 0x78], ecx
jg 0x514dd3
push 0
push 0
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
mov dword [esp + 0x84], eax
jmp 0x514e9e
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 0x514e9e
mov ebp, dword [esp + 0x8c]
test ebp, ebp
je 0x514ea5
mov ebx, dword [esi + 0x74]
mov dword [esp + 0x90], ebx
cmp dword [esi + 0x78], ebx
jg 0x514e43
push 0
push 0
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
mov dword [esp + 0x90], eax
jmp 0x514e76
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 0x514e83
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x514e92
mov eax, 0x784c9c
jmp 0x514e9b
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 0x514eb7
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 4]
mov ebx, dword [eax]
jmp 0x514ebd
mov ebx, dword [esp + 0x2c]
xor ebp, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebp
test ebx, ebx
je 0x515f15
lea ecx, [ecx]
mov eax, dword [esp + 0xc4]
cmp dword [eax + ebp*4], 0
je 0x515eb9
test ecx, ecx
je 0x514f32
mov eax, ecx
cmp dword [eax], 0
je 0x514ef8
cmp dword [eax + 0x1c], ebx
je 0x514ef8
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x514ee7
cmp dword [esp + 0x64], 0
mov dword [esp + 0x58], eax
je 0x514f32
cmp eax, ecx
jne 0x514f32
mov eax, dword [esp + 0x64]
mov ecx, eax
mov edx, dword [esi + 0x74]
test eax, eax
jns 0x514f17
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x514f26
mov eax, 0x784c9c
jmp 0x514f2f
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 0x514f61
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.00529c00
add esp, 0xc
mov byte [esp + 0x13], 1
add ebp, dword [esp + 0xcc]
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x68], ebp
je 0x515037
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 0x514f9e
push 0
push edx
push 0
push 0x4a
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x514fd1
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 0x514ff9
push 0
push 0
push eax
push ebx
call fcn.004cbd60
add esp, 0x10
mov edi, eax
jmp 0x514ffb
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x515017
push 0x10
push dword [esp + 0x24]
push edi
push dword [esp + 0xc8]
call fcn.0050af40
add esp, 0x10
test edi, edi
je 0x515025
push edi
push ebx
call fcn.0050ac20
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 0x515224
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 0x5150de
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 0x5150a0
push 0
push 0
push eax
push ebx
call fcn.004cbd60
add esp, 0x10
mov edi, eax
jmp 0x5150a2
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x5150b9
push ebp
push edi
push dword [esp + 0xc4]
call fcn.00507eb0
add esp, 0xc
test edi, edi
je 0x5150c7
push edi
push ebx
call fcn.0050ac20
add esp, 8
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x38]
mov dword [edi + 0x34], 0
jmp 0x5151f7
cmp ecx, 0xffffffff
je 0x5151a6
mov eax, dword [esp + 0xc0]
movsx eax, word [eax + 0x20]
cmp ecx, eax
je 0x5151a6
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x20
je 0x51515c
test cx, cx
js 0x51515c
movsx ecx, cx
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x515133
mov eax, dword [eax + 4]
mov edi, ecx
add eax, 0xe
nop
test byte [eax], 0x20
jne 0x515126
inc edx
add eax, 0x10
dec ecx
jne 0x515120
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, edi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x515157
mov eax, dword [esp + 0xc0]
mov ax, word [eax + 0x24]
sub ax, dx
add ax, di
movzx eax, ax
jmp 0x51515f
movzx eax, dx
jmp 0x51515f
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 0x51518a
push 0
push ebp
push edx
push 0x50
push esi
call fcn.004e2e80
mov edi, dword [esp + 0xd0]
add esp, 0x14
jmp 0x5151f7
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 0x5151df
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5151c5
push 0
push ebp
push dword [esp + 0xd8]
push 0x51
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x5151f7
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 0x515064
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 0x51524e
push edx
push edi
push eax
push 0x60
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x51527d
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 0x5152c5
cmp edx, ebx
jne 0x5152c5
cmp byte [esp + 0xd8], 0
jne 0x5152c5
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5152b7
push edx
push esi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x515eb5
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
jmp 0x515eb5
movzx ebx, byte [ebx + 0x36]
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x5152f2
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5152b7
push edx
push esi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x515eb5
mov al, byte [esp + 0xdc]
cmp al, 0xb
je 0x515302
movzx ebx, al
jmp 0x51530c
cmp ebx, 0xb
jne 0x515310
mov ebx, 2
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x51532b
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 0x515382
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x14], 0
jne 0x515382
cmp edx, ecx
jne 0x515382
cmp ebx, 5
jne 0x515382
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
and eax, 0x2000
mov dword [esp + 0x40], eax
lea eax, [ebx - 5]
jne 0x51535e
test eax, eax
je 0x5153b9
mov edi, dword [esp + 0xc0]
push 0
push 0
push pe_nt_image_headers32
push edi
push dword [esp + 0xcc]
call fcn.0052a680
add esp, 0x14
test eax, eax
je 0x5153c0
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 0x51541e
push dword [esp + 0x48]
push dword [esp + 0x24]
push ebp
push 0x1d
push esi
call fcn.004e2e80
mov edx, eax
add esp, 0x14
mov dword [esp + 0x3c], edx
jmp 0x515451
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 0x5153db
test eax, eax
je 0x5153f9
cmp dword [edi + 0x30], eax
jne 0x515382
mov eax, dword [edi + 0x3c]
push 0
push dword [edi]
add eax, 0x38
push eax
call fcn.004cd880
add esp, 0xc
cmp dword [eax + 8], 0
jne 0x515382
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5152b7
push edx
push esi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x515eb5
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 0x515468
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 0x51547c
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], edx
jmp 0x5154dd
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0xbc]
cmp eax, 1
jne 0x5154ac
mov al, byte [edi + 0x13]
test al, al
jne 0x51549b
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
jmp 0x5154d5
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x98]
jmp 0x5154d5
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x50], edx
cmp eax, ecx
jg 0x5154c8
add eax, edx
sub ecx, dword [esp + 0x70]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], ecx
jmp 0x5154d9
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 0x5154ed
cmp ebx, 5
jne 0x5158b2
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x80
jne 0x5155c7
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x51551e
push 0
push edx
push ebp
push 0x8d
push esi
call fcn.004e2e80
mov edx, dword [esp + 0x64]
add esp, 0x14
jmp 0x515549
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 0x5158b2
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x515575
push dword [esp + 0xd4]
push dword [esp + 0x24]
push edx
push 0x35
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x5155a7
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 0x5158b2
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x5158b2
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x515676
xor ecx, ecx
xor ebp, ebp
cmp cx, word [eax + 0x32]
jae 0x515676
mov ebx, edx
movzx edx, word [edi + 0x34]
xor ecx, ecx
test edx, edx
jle 0x51560d
mov eax, dword [eax + 4]
movzx edi, word [eax + ebp*2]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
jmp 0x515600
cmp di, word [eax]
je 0x51562e
inc ecx
add eax, 2
cmp ecx, edx
jl 0x515600
or eax, 0xffffffff
mov ecx, dword [esi + 0x74]
movsx edx, ax
cmp dword [esi + 0x78], ecx
jg 0x515633
push ebx
push edx
push dword [esp + 0x70]
push 0x5d
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x51565e
movzx eax, cx
jmp 0x515610
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 0x5155e3
cmp byte [esp + 0x12], 0
je 0x5158b2
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 0x5156a7
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ebx
test ecx, ecx
jle 0x5158b2
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 0x5157bb
movzx eax, bh
push eax
push edi
push ecx
call fcn.004cd710
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x515708
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 0x515731
test ebp, ebp
je 0x51571d
cmp dword [ebp + 0xc], 0
jne 0x515731
push edi
push ebp
push dword [esp + 0xb8]
push eax
call fcn.00516af0
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 0x515759
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 0x5157cc
test dx, dx
js 0x5157cc
movsx ecx, dx
xor ebx, ebx
xor edi, edi
test ecx, ecx
jle 0x515793
mov eax, dword [eax + 4]
mov ebx, ecx
add eax, 0xe
mov edi, edi
test byte [eax], 0x20
jne 0x515786
inc edi
add eax, 0x10
dec ecx
jne 0x515780
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, ebx
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x5157c3
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 0x5157cf
mov ebp, dword [ecx + 8]
jmp 0x51570f
mov ebx, dword [esp + 0x24]
movzx eax, di
jmp 0x5157cf
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 0x515802
mov eax, dword [esp + 0x40]
add eax, ebx
push eax
push dword [esp + 0x3c]
push edi
push dword [esp + 0x84]
push esi
call fcn.004e2e80
add esp, 0x14
mov edx, eax
jmp 0x51583e
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 0x515854
push ebp
push 0xfffffffffffffffe
push eax
call fcn.004cfc50
add esp, 0xc
jmp 0x515886
test edx, edx
jns 0x51585c
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 0x51587b
push 0xfffffffffffffffe
push ebp
push eax
push esi
call fcn.00547c80
add esp, 0x10
jmp 0x515886
test ebp, ebp
je 0x515886
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xfe
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x51589d
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 0x5156c0
mov ecx, dword [esp + 0x60]
lea eax, [ecx - 1]
cmp eax, 5
ja case.0x5158c2.5
jmp dword [eax*4 + 0x516348]
push dword [esp + 0x14]
mov ebx, dword [esp + 0xc0]
push ecx
push ebx
call fcn.0052a840
add esp, 0xc
jmp 0x515da9
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.0052d690
add esp, 0x14
jmp 0x515913
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x515936
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x515da9
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 0x515da9
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 0x5159a1
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x515996
mov eax, ebx
inc dword [esp + 0x88]
mov byte [eax + 0x14], 1
cmp dword [esp + 0x80], 0
je 0x515a0b
cmp byte [esp + 0x12], 0
je 0x515a0b
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5159d5
push 0
push 0
push dword [esp + 0xd0]
push 0xa6
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x515a0b
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.00516560
add esp, 0x2c
cmp dword [esp + 0x80], 0
je 0x515abc
cmp byte [esp + 0x12], 0
je 0x515abc
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x515a86
push 0
push 0
push dword [esp + 0xd0]
push 0xa7
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x515abc
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 0x515da1
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x515ae2
push 0
push 1
push edx
push 0x55
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x515b15
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 0x515b38
push 0
push 0
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
mov dword [esp + 0x78], eax
jmp 0x515b6b
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 0x515b89
push edx
push esi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x515b92
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 0x515bfa
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x74]
dec edx
cmp dword [esi + 0x78], ecx
jg 0x515bc7
push 0
push dword [esp + 0x38]
push edx
push 0x32
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x515bfa
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 0x515d66
mov ecx, edi
test edi, edi
jns 0x515c0c
mov ecx, dword [esi + 0x74]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x515c1b
mov eax, 0x784c9c
jmp 0x515c24
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 0x515d45
movzx eax, cl
mov dword [esp + 0x24], eax
test byte [eax + 0x581238], 1
je 0x515c5e
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 0x515c8a
push dword [esp + 0x38]
push ebp
push dword [esp + 0x84]
push eax
push esi
call fcn.004e2e80
add esp, 0x14
mov edx, eax
jmp 0x515cc9
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 0x515ce3
cmp ebx, 0xfffffff4
je 0x515d2b
push edi
push ebx
push eax
call fcn.004cfc50
add esp, 0xc
jmp 0x515d2b
test edx, edx
jns 0x515ceb
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 0x515d1f
cmp byte [eax + 1], 0
jne 0x515d1f
cmp ebx, 0xfffffffd
jne 0x515d0b
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
jmp 0x515d2b
test edi, edi
je 0x515d2b
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
cmp ebx, 0xfffffff4
jne 0x515d2b
inc dword [edi + 0xc]
jmp 0x515d2b
push ebx
push edi
push eax
push esi
call fcn.00547c80
add esp, 0x10
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x515d45
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 0x515c02
mov ebx, dword [esp + 0xbc]
push dword [esp + 0x14]
push 2
push ebx
call fcn.0052a840
mov ecx, dword [esp + 0x84]
add esp, 0xc
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x515d86
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x515d95
mov eax, 0x784c9c
jmp 0x515d9e
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 0x515dc7
push edx
push esi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x515dd0
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 0x515e08
mov eax, dword [esp + 0x70]
cmp eax, 1
jne 0x515dfd
test ecx, ecx
je 0x515e08
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x515e08
movzx eax, al
mov dword [ebx + eax*4 + 0x98], ecx
inc byte [ebx + 0x13]
jmp 0x515e08
cmp eax, dword [ebx + 0x1c]
jle 0x515e08
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], ecx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x515eb5
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x515eb5
mov eax, dword [eax + 0x10]
test eax, eax
je 0x515e39
cmp dword [eax], 0
je 0x515e39
cmp dword [eax + 0x1c], 0
jne 0x515eb5
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 0x74]
inc edx
cmp dword [esi + 0x78], ecx
jg 0x515e58
push 0
push edx
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x515e87
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 0x515e91
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x515ea0
mov eax, 0x784c9c
jmp 0x515ea9
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 0x515ee8
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 0x515f15
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 0x515efa
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 0x515f15
mov edi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xec]
jmp 0x514ed0
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x515f95
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x515f3a
push 0
push edx
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x515f69
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 0x515f7a
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x515f89
mov eax, 0x784c9c
jmp 0x515f92
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 0x516288
mov ecx, dword [esi + 0x74]
mov edx, dword [esp + 0x4c]
cmp dword [esi + 0x78], ecx
jg 0x515fc3
push 0
push dword [esp + 0x38]
push edx
push 0x14
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x515ff2
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 0x516218
cmp byte [esp + 0x12], 0
je 0x516078
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x51602c
push dword [esp + 0xd4]
push edi
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x516061
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 0x516078
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 0x51609c
push dword [esp + 0xd0]
push edi
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x5160d1
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 0x51610b
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.0051b720
add esp, 0x10
mov ebp, 0x613
jmp 0x516128
push dword [edx]
mov eax, dword [esp + 0xc0]
push str._s.rowid
push dword [eax]
call fcn.0051b720
add esp, 0xc
mov ebp, 0xa13
mov ecx, dword [esp + 0xbc]
mov ebx, eax
mov edi, dword [ecx + 8]
test edi, edi
jne 0x51615b
cmp dword [ecx + 0x74], edi
jne 0x516149
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x516149
mov byte [ecx + 0x17], 1
push ecx
call fcn.0052ee00
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x516164
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x516184
push 0
push 2
push ebp
push 0x46
push edi
call fcn.004e2e80
add esp, 0x14
mov edx, eax
jmp 0x5161b7
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 0x5161cd
push ebx
push 0xfffffffffffffff9
push eax
call fcn.004cfc50
add esp, 0xc
jmp 0x5161ff
test edx, edx
jns 0x5161d5
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 0x5161f2
test ebx, ebx
je 0x5161ff
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0xf9
jmp 0x5161ff
push 0xfffffffffffffff9
push ebx
push eax
push edi
call fcn.00547c80
add esp, 0x10
mov eax, dword [edi + 0x74]
test eax, eax
jle 0x516261
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x516261
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x516232
push 0
push edi
push 0
push 0xb
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x516261
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 0x51627f
push edx
push esi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x516288
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 0x516301
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 0x5162c7
push edx
push edi
push ebx
push 0x60
push esi
call fcn.004e2e80
add esp, 0x14
jmp 0x5162ee
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 0x516301
push 0
push ebp
push esi
call fcn.00529c00
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