Function at 0x4ffef0
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 0x4fff83
mov dword [esp + 0x28], 0
mov dword [esp + 0x70], 1
jmp 0x4fffac
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
test edx, edx
je 0x4fffa4
mov edi, edi
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x4fffa0
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x4fff90
mov dword [esp + 0x28], edx
movzx eax, word [edx + 0x32]
mov dword [esp + 0x70], eax
test ecx, 0x800
je 0x5002dd
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 0x50028b
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 0x500268
movsx eax, word [eax + 0x20]
cmp ebp, eax
je 0x500261
movzx eax, word [ebx + 0xe]
and eax, 0x60
je 0x50001b
test ecx, ecx
jne 0x50001b
inc edx
mov dword [esp + 0x18], edx
jmp 0x500261
cmp dword [esp + 0xe8], 0
mov esi, dword [esp + 0x5c]
je 0x500042
mov esi, dword [esp + 0xe8]
cmp dword [esi + ebp*4], 0
mov esi, dword [esp + 0x5c]
jge 0x500042
test eax, eax
je 0x500261
cmp byte [esp + 0xdc], 0xb
mov ecx, dword [esp + 0x20]
je 0x500072
movzx edi, byte [esp + 0xdc]
mov edx, dword [esp + 0x18]
cmp edi, 5
jne 0x50007c
test ecx, ecx
jne 0x50006b
cmp word [ebx + 0xc], cx
jne 0x500088
mov edi, 2
jmp 0x500088
cmp edi, 0xb
jne 0x50005c
mov edi, 2
test ecx, ecx
je 0x500088
test eax, eax
je 0x500261
push ebp
push dword [esp + 0xc4]
call fcn.00515e30
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.0x5000b3.4
jmp dword [eax*4 + 0x50236c]
push edx
push 0x33
push esi
call fcn.0051a370
inc dword [esp + 0x38]
mov edi, eax
movzx eax, word [ebx + 0xc]
add esp, 0xc
test ax, ax
jne 0x5000d9
xor eax, eax
jmp 0x500104
mov ecx, dword [esp + 0xc0]
cmp byte [ecx + 0x2b], 0
je 0x5000ea
xor eax, eax
jmp 0x500104
mov ecx, dword [ecx + 0x34]
test ecx, ecx
jne 0x5000f5
xor eax, eax
jmp 0x500104
cmp dword [ecx], eax
jge 0x5000fd
xor eax, eax
jmp 0x500104
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.004f3f50
mov edx, dword [esi + 0x74]
add esp, 0xc
test edi, edi
jns 0x500123
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x500138
mov eax, 0x6a4314
mov dword [eax + 8], edx
jmp 0x500259
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x500259
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x50015a
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.00507770
mov ecx, dword [esi + 0x74]
add esp, 0x10
mov ebx, eax
mov edx, dword [esp + 0x24]
cmp dword [esi + 0x78], ecx
jg 0x50019c
push edx
push edi
push 0x513
push 0x45
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x5001c7
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 0x5001dd
push ebx
push 0xfffffffffffffff9
push eax
call fcn.004bbca0
add esp, 0xc
jmp 0x5001ef
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 0x500259
lea ecx, [eax + eax*4]
mov edx, 1
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x500259
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x500227
push 0
push dword [esp + 0xe4]
push edx
push 0x32
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x500259
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 0x4fffe7
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xbc]
test edx, edx
jne 0x500293
test eax, eax
je 0x5002dd
test ecx, ecx
jne 0x5002dd
mov ecx, 1
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x4fffd0
mov ebp, dword [esp + 0xc0]
test byte [ebp + 0x1c], 0x60
je 0x4fffd0
mov eax, dword [esp + 0xd0]
push ebp
inc eax
push eax
push edi
call fcn.004eed20
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
jmp 0x4fffd0
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x24], edx
test edx, edx
je 0x5005f8
mov eax, dword [ecx + 0x20]
and eax, 0x200
or eax, 0
jne 0x5005f8
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 0x500328
mov ebp, 2
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [edx], ecx
jle 0x5005ed
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 0x5003e5
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], 0x4ae7d0
mov dword [esp + 0xac], ebx
test edi, edi
je 0x5003cd
lea eax, [esp + 0x94]
push edi
push eax
call fcn.0053a2d0
mov ax, word [esp + 0xb0]
add esp, 8
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
cmp byte [esp + 0xd8], 0
jne 0x5003dc
and ax, word [esp + 0x74]
test ax, ax
je 0x5005c7
cmp byte [esp + 0x13], 0
jne 0x50040a
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.00515c50
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 0x500437
push 0
push 0
push edi
push dword [esp + 0x3c]
call fcn.004b7db0
mov edi, eax
add esp, 0x10
mov eax, dword [esp + 0xbc]
jmp 0x500439
xor edi, edi
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x57], 0
jne 0x500454
push 0x10
push ebx
push edi
push eax
call fcn.004f73c0
mov ecx, dword [esp + 0x40]
add esp, 0x10
test edi, edi
je 0x500462
push edi
push ecx
call fcn.004f6c70
add esp, 8
cmp ebp, 4
jne 0x5004c5
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x50048a
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x500595
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 0x500595
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
cmp ebp, 5
jne 0x5004d9
mov ebp, 2
mov ecx, dword [esp + 0xbc]
mov edi, dword [ecx + 8]
test edi, edi
jne 0x50050a
cmp dword [ecx + 0x74], edi
jne 0x5004f8
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x5004f8
mov byte [ecx + 0x17], 1
push ecx
call fcn.0051ae50
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
cmp ebp, 2
jne 0x50051c
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x500518
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x50053b
push 0
push ebp
push 0x113
push 0x46
push edi
call fcn.004ceed0
add esp, 0x14
mov edx, eax
jmp 0x50056e
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.0051a950
mov eax, dword [edi + 0x74]
add esp, 0x10
test eax, eax
jle 0x500595
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 0x5005af
push ebx
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x5005b8
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 0x500350
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 0x5007ae
cmp dword [edx], 0
jne 0x500654
cmp byte [edx + 0x14], 0
jne 0x500647
xor eax, eax
mov byte [esp + 0xdc], 4
mov dword [esp + 0xec], eax
jmp 0x5007ae
mov byte [esp + 0xdc], 6
jmp 0x5007ae
test eax, eax
je 0x5007ae
xor edi, edi
mov edi, edi
mov eax, dword [eax + 0x14]
inc edi
test eax, eax
jne 0x500660
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 0x50068e
push edx
push ebx
push ecx
call fcn.004f0ee0
add esp, 0xc
mov edx, eax
jmp 0x5006f8
mov eax, ebx
or eax, edx
je 0x5006f6
test edx, edx
ja 0x5006f6
jb 0x5006a2
cmp ebx, 0x7fffff00
jae 0x5006f6
cmp dword [0x69bed0], edx
je 0x5006e4
mov eax, dword [0x6a3fe8]
test eax, eax
je 0x5006bd
push eax
call dword [0x69bf20]
add esp, 4
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.004d4e50
mov eax, dword [0x6a3fe8]
add esp, 8
test eax, eax
je 0x5006de
push eax
call dword [0x69bf28]
add esp, 4
mov edx, dword [esp + 0x40]
jmp 0x5006f8
push ebx
call dword [0x69bef0]
add esp, 4
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x5006fc
xor edx, edx
mov dword [esp + 0x18], edx
test edx, edx
je 0x50235e
push ebx
push 0
push edx
call sub.MSVCRT.dll_memset
mov edx, dword [esp + 0x24]
add esp, 0xc
test edx, edx
je 0x50235e
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 0x50077f
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x500774
mov eax, dword [esi + 8]
xor ecx, ecx
test eax, eax
je 0x50075c
lea esp, [esp]
cmp eax, edx
je 0x50075c
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x500750
cmp byte [ecx + ebp], 0
mov edx, dword [esp + 0x18]
jne 0x500778
mov byte [ecx + ebp], 1
mov dword [edx + ebx*8], eax
mov dword [edx + ebx*8 + 4], ecx
inc ebx
jmp 0x500778
mov edx, dword [esp + 0x18]
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x500734
mov eax, esi
xor ecx, ecx
mov esi, dword [esp + 0x5c]
mov eax, dword [eax + 8]
test eax, eax
je 0x5007a7
lea edx, [edx + ebx*8]
cmp byte [ecx + ebp], 0
jne 0x50079f
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x500791
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 0x5007e2
mov dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jmp 0x5008a6
and ecx, 0x2000
or ecx, 0
push 0
push 0
je 0x500826
push pe_nt_image_headers32
push ebx
push edi
call fcn.005166d0
mov ebp, eax
add esp, 0x14
mov dword [esp + 0x80], ebp
test ebp, ebp
jne 0x500845
push eax
push eax
push ebx
push edi
call fcn.004faef0
add esp, 0x10
test eax, eax
jne 0x500845
mov dword [esp + 0x4c], eax
jmp 0x5008a6
push ebx
push edi
mov dword [esp + 0x90], 0
call fcn.004faef0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x4c], edx
test edx, edx
je 0x5008a6
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 0x500869
push 0
push edx
push 0
push 0x47
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x500898
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 0x500eee
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x500eee
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 0x5008de
movzx ebx, al
jmp 0x5008e8
cmp ebx, 0xb
jne 0x5008e8
mov ebx, 2
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x50098a
mov eax, ecx
lea esp, [esp]
cmp dword [eax], 0
je 0x500912
cmp dword [eax + 0x1c], 0
je 0x500912
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x500900
mov dword [esp + 0x58], eax
test eax, eax
je 0x500929
xor ebx, ebx
cmp byte [eax + 0x14], bl
setne bl
lea ebx, [ebx*2 + 4]
cmp eax, ecx
je 0x500983
mov edx, dword [esi + 0x74]
mov dword [esp + 0x64], edx
cmp dword [esi + 0x78], edx
jg 0x500950
push 0
push 0
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
mov dword [esp + 0x64], eax
jmp 0x500983
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 0x500a08
cmp al, bl
je 0x500a08
mov eax, dword [esp + 0xc0]
cmp dword [eax + 8], 0
je 0x500a08
cmp dword [esp + 0x64], 0
jne 0x500a08
mov edx, dword [esi + 0x74]
cmp dword [esi + 0x78], edx
jg 0x5009c4
push 0
push 0
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
mov edx, eax
jmp 0x5009fe
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 0x500a7f
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x500a33
push dword [esp + 0xd4]
push ebp
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x500a68
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 0x500a7f
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 0x500aaa
push dword [esp + 0xd0]
push ebp
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.004ceed0
mov edx, dword [esp + 0xdc]
add esp, 0x14
jmp 0x500ae6
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.0x500af2
jmp dword [eax*4 + 0x502380]
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x500bb9
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x500b0e
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.005025b0
mov ecx, dword [esi + 0x74]
add esp, 0x2c
cmp dword [esi + 0x78], ecx
jg 0x500b72
push 0
push 1
push ebx
push 0x55
push esi
call fcn.004ceed0
add esp, 0x14
mov dword [esp + 0x88], 1
mov dword [esp + 0x7c], 1
jmp 0x500dc3
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 0x500dc3
mov ecx, dword [esp + 0xc0]
cmp dword [ecx + 8], 0
je 0x500be9
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x500bcf
mov eax, edi
push 0xffffffffffffffff
push 0
push dword [esp + 0xd4]
mov byte [eax + 0x14], 1
push edx
push ecx
push edi
call fcn.005029a0
add esp, 0x18
mov dword [esp + 0x7c], 1
jmp 0x500dc3
mov eax, dword [esp + 0xec]
push edx
push 0
push dword [esp + 0xc8]
push eax
push edi
call fcn.005196e0
add esp, 0x14
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x500c34
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x500dc3
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 0x500dc3
mov ebx, 2
mov edx, dword [esp + 0xc0]
movzx eax, word [edx + 0x20]
test ax, ax
js 0x500caa
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.00507770
add esp, 0x10
mov dword [esp + 0x24], 0x613
jmp 0x500cc3
push dword [edx]
push str._s.rowid
push dword [edi]
call fcn.00507770
add esp, 0xc
mov dword [esp + 0x24], 0xa13
mov edi, dword [edi + 8]
mov ebp, eax
test edi, edi
jne 0x500cef
mov ecx, dword [esp + 0xbc]
cmp dword [ecx + 0x74], edi
jne 0x500ce4
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x500ce4
mov byte [ecx + 0x17], 1
push ecx
call fcn.0051ae50
add esp, 4
mov edi, eax
cmp ebx, 2
jne 0x500d08
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x500d04
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x500d26
push 0
push ebx
push dword [esp + 0x2c]
push 0x46
push edi
call fcn.004ceed0
add esp, 0x14
mov edx, eax
jmp 0x500d59
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 0x500d6f
push ebp
push 0xfffffffffffffff9
push eax
call fcn.004bbca0
add esp, 0xc
jmp 0x500da1
test edx, edx
jns 0x500d77
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 0x500d94
test ebp, ebp
je 0x500da1
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xf9
jmp 0x500da1
push 0xfffffffffffffff9
push ebp
push eax
push edi
call fcn.00533cd0
add esp, 0x10
mov eax, dword [edi + 0x74]
mov ebp, dword [esp + 0x40]
test eax, eax
jle 0x500dbc
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 0x500ddd
push ebp
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x500de6
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 0x500e5b
cmp dword [esp + 0x58], ecx
je 0x500e5b
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x84], ecx
cmp dword [esi + 0x78], ecx
jg 0x500e23
push 0
push 0
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
mov dword [esp + 0x84], eax
jmp 0x500eee
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 0x500eee
mov ebp, dword [esp + 0x8c]
test ebp, ebp
je 0x500ef5
mov ebx, dword [esi + 0x74]
mov dword [esp + 0x90], ebx
cmp dword [esi + 0x78], ebx
jg 0x500e93
push 0
push 0
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
mov dword [esp + 0x90], eax
jmp 0x500ec6
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 0x500ed3
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x500ee2
mov eax, 0x6a4314
jmp 0x500eeb
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 0x500f07
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 4]
mov ebx, dword [eax]
jmp 0x500f0d
mov ebx, dword [esp + 0x2c]
xor ebp, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebp
test ebx, ebx
je 0x501f65
lea ecx, [ecx]
mov eax, dword [esp + 0xc4]
cmp dword [eax + ebp*4], 0
je 0x501f09
test ecx, ecx
je 0x500f82
mov eax, ecx
cmp dword [eax], 0
je 0x500f48
cmp dword [eax + 0x1c], ebx
je 0x500f48
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x500f37
cmp dword [esp + 0x64], 0
mov dword [esp + 0x58], eax
je 0x500f82
cmp eax, ecx
jne 0x500f82
mov eax, dword [esp + 0x64]
mov ecx, eax
mov edx, dword [esi + 0x74]
test eax, eax
jns 0x500f67
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x500f76
mov eax, 0x6a4314
jmp 0x500f7f
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 0x500fb1
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.00515c50
add esp, 0xc
mov byte [esp + 0x13], 1
add ebp, dword [esp + 0xcc]
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x68], ebp
je 0x501087
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 0x500fee
push 0
push edx
push 0
push 0x4a
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x501021
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 0x501049
push 0
push 0
push eax
push ebx
call fcn.004b7db0
add esp, 0x10
mov edi, eax
jmp 0x50104b
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x501067
push 0x10
push dword [esp + 0x24]
push edi
push dword [esp + 0xc8]
call fcn.004f6f90
add esp, 0x10
test edi, edi
je 0x501075
push edi
push ebx
call fcn.004f6c70
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 0x501274
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 0x50112e
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 0x5010f0
push 0
push 0
push eax
push ebx
call fcn.004b7db0
add esp, 0x10
mov edi, eax
jmp 0x5010f2
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x501109
push ebp
push edi
push dword [esp + 0xc4]
call fcn.004f3f00
add esp, 0xc
test edi, edi
je 0x501117
push edi
push ebx
call fcn.004f6c70
add esp, 8
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x38]
mov dword [edi + 0x34], 0
jmp 0x501247
cmp ecx, 0xffffffff
je 0x5011f6
mov eax, dword [esp + 0xc0]
movsx eax, word [eax + 0x20]
cmp ecx, eax
je 0x5011f6
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x20
je 0x5011ac
test cx, cx
js 0x5011ac
movsx ecx, cx
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x501183
mov eax, dword [eax + 4]
mov edi, ecx
add eax, 0xe
nop
test byte [eax], 0x20
jne 0x501176
inc edx
add eax, 0x10
dec ecx
jne 0x501170
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, edi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x5011a7
mov eax, dword [esp + 0xc0]
mov ax, word [eax + 0x24]
sub ax, dx
add ax, di
movzx eax, ax
jmp 0x5011af
movzx eax, dx
jmp 0x5011af
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 0x5011da
push 0
push ebp
push edx
push 0x50
push esi
call fcn.004ceed0
mov edi, dword [esp + 0xd0]
add esp, 0x14
jmp 0x501247
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 0x50122f
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x501215
push 0
push ebp
push dword [esp + 0xd8]
push 0x51
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x501247
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 0x5010b4
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 0x50129e
push edx
push edi
push eax
push 0x60
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x5012cd
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 0x501315
cmp edx, ebx
jne 0x501315
cmp byte [esp + 0xd8], 0
jne 0x501315
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x501307
push edx
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x501f05
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
jmp 0x501f05
movzx ebx, byte [ebx + 0x36]
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x501342
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x501307
push edx
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x501f05
mov al, byte [esp + 0xdc]
cmp al, 0xb
je 0x501352
movzx ebx, al
jmp 0x50135c
cmp ebx, 0xb
jne 0x501360
mov ebx, 2
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x50137b
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 0x5013d2
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x14], 0
jne 0x5013d2
cmp edx, ecx
jne 0x5013d2
cmp ebx, 5
jne 0x5013d2
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
and eax, 0x2000
mov dword [esp + 0x40], eax
lea eax, [ebx - 5]
jne 0x5013ae
test eax, eax
je 0x501409
mov edi, dword [esp + 0xc0]
push 0
push 0
push pe_nt_image_headers32
push edi
push dword [esp + 0xcc]
call fcn.005166d0
add esp, 0x14
test eax, eax
je 0x501410
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 0x50146e
push dword [esp + 0x48]
push dword [esp + 0x24]
push ebp
push 0x1d
push esi
call fcn.004ceed0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x3c], edx
jmp 0x5014a1
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 0x50142b
test eax, eax
je 0x501449
cmp dword [edi + 0x30], eax
jne 0x5013d2
mov eax, dword [edi + 0x3c]
push 0
push dword [edi]
add eax, 0x38
push eax
call fcn.004b98d0
add esp, 0xc
cmp dword [eax + 8], 0
jne 0x5013d2
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x501307
push edx
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x501f05
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 0x5014b8
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 0x5014cc
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], edx
jmp 0x50152d
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0xbc]
cmp eax, 1
jne 0x5014fc
mov al, byte [edi + 0x13]
test al, al
jne 0x5014eb
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
jmp 0x501525
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x98]
jmp 0x501525
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x50], edx
cmp eax, ecx
jg 0x501518
add eax, edx
sub ecx, dword [esp + 0x70]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], ecx
jmp 0x501529
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 0x50153d
cmp ebx, 5
jne 0x501902
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x80
jne 0x501617
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x50156e
push 0
push edx
push ebp
push 0x8d
push esi
call fcn.004ceed0
mov edx, dword [esp + 0x64]
add esp, 0x14
jmp 0x501599
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 0x501902
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5015c5
push dword [esp + 0xd4]
push dword [esp + 0x24]
push edx
push 0x35
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x5015f7
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 0x501902
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x501902
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x5016c6
xor ecx, ecx
xor ebp, ebp
cmp cx, word [eax + 0x32]
jae 0x5016c6
mov ebx, edx
movzx edx, word [edi + 0x34]
xor ecx, ecx
test edx, edx
jle 0x50165d
mov eax, dword [eax + 4]
movzx edi, word [eax + ebp*2]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
jmp 0x501650
cmp di, word [eax]
je 0x50167e
inc ecx
add eax, 2
cmp ecx, edx
jl 0x501650
or eax, 0xffffffff
mov ecx, dword [esi + 0x74]
movsx edx, ax
cmp dword [esi + 0x78], ecx
jg 0x501683
push ebx
push edx
push dword [esp + 0x70]
push 0x5d
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x5016ae
movzx eax, cx
jmp 0x501660
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 0x501633
cmp byte [esp + 0x12], 0
je 0x501902
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 0x5016f7
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ebx
test ecx, ecx
jle 0x501902
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 0x50180b
movzx eax, bh
push eax
push edi
push ecx
call fcn.004b9760
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x501758
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 0x501781
test ebp, ebp
je 0x50176d
cmp dword [ebp + 0xc], 0
jne 0x501781
push edi
push ebp
push dword [esp + 0xb8]
push eax
call fcn.00502b40
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 0x5017a9
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 0x50181c
test dx, dx
js 0x50181c
movsx ecx, dx
xor ebx, ebx
xor edi, edi
test ecx, ecx
jle 0x5017e3
mov eax, dword [eax + 4]
mov ebx, ecx
add eax, 0xe
mov edi, edi
test byte [eax], 0x20
jne 0x5017d6
inc edi
add eax, 0x10
dec ecx
jne 0x5017d0
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, ebx
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x501813
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 0x50181f
mov ebp, dword [ecx + 8]
jmp 0x50175f
mov ebx, dword [esp + 0x24]
movzx eax, di
jmp 0x50181f
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 0x501852
mov eax, dword [esp + 0x40]
add eax, ebx
push eax
push dword [esp + 0x3c]
push edi
push dword [esp + 0x84]
push esi
call fcn.004ceed0
add esp, 0x14
mov edx, eax
jmp 0x50188e
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 0x5018a4
push ebp
push 0xfffffffffffffffe
push eax
call fcn.004bbca0
add esp, 0xc
jmp 0x5018d6
test edx, edx
jns 0x5018ac
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 0x5018cb
push 0xfffffffffffffffe
push ebp
push eax
push esi
call fcn.00533cd0
add esp, 0x10
jmp 0x5018d6
test ebp, ebp
je 0x5018d6
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xfe
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x5018ed
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 0x501710
mov ecx, dword [esp + 0x60]
lea eax, [ecx - 1]
cmp eax, 5
ja case.0x501912.5
jmp dword [eax*4 + 0x502398]
push dword [esp + 0x14]
mov ebx, dword [esp + 0xc0]
push ecx
push ebx
call fcn.00516890
add esp, 0xc
jmp 0x501df9
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.005196e0
add esp, 0x14
jmp 0x501963
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x501986
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x501df9
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 0x501df9
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 0x5019f1
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x5019e6
mov eax, ebx
inc dword [esp + 0x88]
mov byte [eax + 0x14], 1
cmp dword [esp + 0x80], 0
je 0x501a5b
cmp byte [esp + 0x12], 0
je 0x501a5b
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x501a25
push 0
push 0
push dword [esp + 0xd0]
push 0xa6
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x501a5b
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.005025b0
add esp, 0x2c
cmp dword [esp + 0x80], 0
je 0x501b0c
cmp byte [esp + 0x12], 0
je 0x501b0c
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x501ad6
push 0
push 0
push dword [esp + 0xd0]
push 0xa7
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x501b0c
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 0x501df1
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x501b32
push 0
push 1
push edx
push 0x55
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x501b65
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 0x501b88
push 0
push 0
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
mov dword [esp + 0x78], eax
jmp 0x501bbb
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 0x501bd9
push edx
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x501be2
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 0x501c4a
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x74]
dec edx
cmp dword [esi + 0x78], ecx
jg 0x501c17
push 0
push dword [esp + 0x38]
push edx
push 0x32
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x501c4a
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 0x501db6
mov ecx, edi
test edi, edi
jns 0x501c5c
mov ecx, dword [esi + 0x74]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x501c6b
mov eax, 0x6a4314
jmp 0x501c74
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 0x501d95
movzx eax, cl
mov dword [esp + 0x24], eax
test byte [eax + 0x5728f8], 1
je 0x501cae
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 0x501cda
push dword [esp + 0x38]
push ebp
push dword [esp + 0x84]
push eax
push esi
call fcn.004ceed0
add esp, 0x14
mov edx, eax
jmp 0x501d19
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 0x501d33
cmp ebx, 0xfffffff4
je 0x501d7b
push edi
push ebx
push eax
call fcn.004bbca0
add esp, 0xc
jmp 0x501d7b
test edx, edx
jns 0x501d3b
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 0x501d6f
cmp byte [eax + 1], 0
jne 0x501d6f
cmp ebx, 0xfffffffd
jne 0x501d5b
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
jmp 0x501d7b
test edi, edi
je 0x501d7b
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
cmp ebx, 0xfffffff4
jne 0x501d7b
inc dword [edi + 0xc]
jmp 0x501d7b
push ebx
push edi
push eax
push esi
call fcn.00533cd0
add esp, 0x10
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x501d95
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 0x501c52
mov ebx, dword [esp + 0xbc]
push dword [esp + 0x14]
push 2
push ebx
call fcn.00516890
mov ecx, dword [esp + 0x84]
add esp, 0xc
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x501dd6
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x501de5
mov eax, 0x6a4314
jmp 0x501dee
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 0x501e17
push edx
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x501e20
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 0x501e58
mov eax, dword [esp + 0x70]
cmp eax, 1
jne 0x501e4d
test ecx, ecx
je 0x501e58
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x501e58
movzx eax, al
mov dword [ebx + eax*4 + 0x98], ecx
inc byte [ebx + 0x13]
jmp 0x501e58
cmp eax, dword [ebx + 0x1c]
jle 0x501e58
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], ecx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x501f05
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x501f05
mov eax, dword [eax + 0x10]
test eax, eax
je 0x501e89
cmp dword [eax], 0
je 0x501e89
cmp dword [eax + 0x1c], 0
jne 0x501f05
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 0x74]
inc edx
cmp dword [esi + 0x78], ecx
jg 0x501ea8
push 0
push edx
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x501ed7
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 0x501ee1
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x501ef0
mov eax, 0x6a4314
jmp 0x501ef9
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 0x501f38
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 0x501f65
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 0x501f4a
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 0x501f65
mov edi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xec]
jmp 0x500f20
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x501fe5
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x501f8a
push 0
push edx
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x501fb9
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 0x501fca
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x501fd9
mov eax, 0x6a4314
jmp 0x501fe2
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 0x5022d8
mov ecx, dword [esi + 0x74]
mov edx, dword [esp + 0x4c]
cmp dword [esi + 0x78], ecx
jg 0x502013
push 0
push dword [esp + 0x38]
push edx
push 0x14
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x502042
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 0x502268
cmp byte [esp + 0x12], 0
je 0x5020c8
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x50207c
push dword [esp + 0xd4]
push edi
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x5020b1
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 0x5020c8
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 0x5020ec
push dword [esp + 0xd0]
push edi
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x502121
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 0x50215b
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.00507770
add esp, 0x10
mov ebp, 0x613
jmp 0x502178
push dword [edx]
mov eax, dword [esp + 0xc0]
push str._s.rowid
push dword [eax]
call fcn.00507770
add esp, 0xc
mov ebp, 0xa13
mov ecx, dword [esp + 0xbc]
mov ebx, eax
mov edi, dword [ecx + 8]
test edi, edi
jne 0x5021ab
cmp dword [ecx + 0x74], edi
jne 0x502199
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x502199
mov byte [ecx + 0x17], 1
push ecx
call fcn.0051ae50
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x5021b4
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x5021d4
push 0
push 2
push ebp
push 0x46
push edi
call fcn.004ceed0
add esp, 0x14
mov edx, eax
jmp 0x502207
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 0x50221d
push ebx
push 0xfffffffffffffff9
push eax
call fcn.004bbca0
add esp, 0xc
jmp 0x50224f
test edx, edx
jns 0x502225
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 0x502242
test ebx, ebx
je 0x50224f
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0xf9
jmp 0x50224f
push 0xfffffffffffffff9
push ebx
push eax
push edi
call fcn.00533cd0
add esp, 0x10
mov eax, dword [edi + 0x74]
test eax, eax
jle 0x5022b1
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x5022b1
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x502282
push 0
push edi
push 0
push 0xb
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x5022b1
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 0x5022cf
push edx
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x5022d8
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 0x502351
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 0x502317
push edx
push edi
push ebx
push 0x60
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x50233e
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 0x502351
push 0
push ebp
push esi
call fcn.00515c50
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