Function at 0x546870
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 0x546903
mov dword [esp + 0x28], 0
mov dword [esp + 0x70], 1
jmp 0x54692c
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
test edx, edx
je 0x546924
mov edi, edi
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x546920
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x546910
mov dword [esp + 0x28], edx
movzx eax, word [edx + 0x32]
mov dword [esp + 0x70], eax
test ecx, 0x800
je 0x546c5d
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 0x546c0b
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 0x546be8
movsx eax, word [eax + 0x20]
cmp ebp, eax
je 0x546be1
movzx eax, word [ebx + 0xe]
and eax, 0x60
je 0x54699b
test ecx, ecx
jne 0x54699b
inc edx
mov dword [esp + 0x18], edx
jmp 0x546be1
cmp dword [esp + 0xe8], 0
mov esi, dword [esp + 0x5c]
je 0x5469c2
mov esi, dword [esp + 0xe8]
cmp dword [esi + ebp*4], 0
mov esi, dword [esp + 0x5c]
jge 0x5469c2
test eax, eax
je 0x546be1
cmp byte [esp + 0xdc], 0xb
mov ecx, dword [esp + 0x20]
je 0x5469f2
movzx edi, byte [esp + 0xdc]
mov edx, dword [esp + 0x18]
cmp edi, 5
jne 0x5469fc
test ecx, ecx
jne 0x5469eb
cmp word [ebx + 0xc], cx
jne 0x546a08
mov edi, 2
jmp 0x546a08
cmp edi, 0xb
jne 0x5469dc
mov edi, 2
test ecx, ecx
je 0x546a08
test eax, eax
je 0x546be1
push ebp
push dword [esp + 0xc4]
call fcn.0055c7b0
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.0x546a33.4
jmp dword [eax*4 + 0x548cec]
push edx
push 0x33
push esi
call fcn.00560cf0
inc dword [esp + 0x38]
mov edi, eax
movzx eax, word [ebx + 0xc]
add esp, 0xc
test ax, ax
jne 0x546a59
xor eax, eax
jmp 0x546a84
mov ecx, dword [esp + 0xc0]
cmp byte [ecx + 0x2b], 0
je 0x546a6a
xor eax, eax
jmp 0x546a84
mov ecx, dword [ecx + 0x34]
test ecx, ecx
jne 0x546a75
xor eax, eax
jmp 0x546a84
cmp dword [ecx], eax
jge 0x546a7d
xor eax, eax
jmp 0x546a84
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.0053a8d0
mov edx, dword [esi + 0x74]
add esp, 0xc
test edi, edi
jns 0x546aa3
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x546ab8
mov eax, 0x973ecc
mov dword [eax + 8], edx
jmp 0x546bd9
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x546bd9
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x546ada
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.0054e0f0
mov ecx, dword [esi + 0x74]
add esp, 0x10
mov ebx, eax
mov edx, dword [esp + 0x24]
cmp dword [esi + 0x78], ecx
jg 0x546b1c
push edx
push edi
push 0x513
push 0x45
push esi
call fcn.00515850
add esp, 0x14
jmp 0x546b47
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 0x546b5d
push ebx
push 0xfffffffffffffff9
push eax
call fcn.00502620
add esp, 0xc
jmp 0x546b6f
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 0x546bd9
lea ecx, [eax + eax*4]
mov edx, 1
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x546bd9
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x546ba7
push 0
push dword [esp + 0xe4]
push edx
push 0x32
push esi
call fcn.00515850
add esp, 0x14
jmp 0x546bd9
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 0x546967
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xbc]
test edx, edx
jne 0x546c13
test eax, eax
je 0x546c5d
test ecx, ecx
jne 0x546c5d
mov ecx, 1
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x546950
mov ebp, dword [esp + 0xc0]
test byte [ebp + 0x1c], 0x60
je 0x546950
mov eax, dword [esp + 0xd0]
push ebp
inc eax
push eax
push edi
call fcn.005356a0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
jmp 0x546950
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x24], edx
test edx, edx
je 0x546f78
mov eax, dword [ecx + 0x20]
and eax, 0x200
or eax, 0
jne 0x546f78
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 0x546ca8
mov ebp, 2
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [edx], ecx
jle 0x546f6d
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 0x546d65
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], 0x4f5150
mov dword [esp + 0xac], ebx
test edi, edi
je 0x546d4d
lea eax, [esp + 0x94]
push edi
push eax
call fcn.00580c50
mov ax, word [esp + 0xb0]
add esp, 8
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
cmp byte [esp + 0xd8], 0
jne 0x546d5c
and ax, word [esp + 0x74]
test ax, ax
je 0x546f47
cmp byte [esp + 0x13], 0
jne 0x546d8a
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.0055c5d0
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 0x546db7
push 0
push 0
push edi
push dword [esp + 0x3c]
call fcn.004fe730
mov edi, eax
add esp, 0x10
mov eax, dword [esp + 0xbc]
jmp 0x546db9
xor edi, edi
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x57], 0
jne 0x546dd4
push 0x10
push ebx
push edi
push eax
call fcn.0053dd40
mov ecx, dword [esp + 0x40]
add esp, 0x10
test edi, edi
je 0x546de2
push edi
push ecx
call fcn.0053d5f0
add esp, 8
cmp ebp, 4
jne 0x546e45
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x546e0a
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
jmp 0x546f15
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 0x546f15
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
cmp ebp, 5
jne 0x546e59
mov ebp, 2
mov ecx, dword [esp + 0xbc]
mov edi, dword [ecx + 8]
test edi, edi
jne 0x546e8a
cmp dword [ecx + 0x74], edi
jne 0x546e78
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x546e78
mov byte [ecx + 0x17], 1
push ecx
call fcn.005617d0
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
cmp ebp, 2
jne 0x546e9c
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x546e98
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x546ebb
push 0
push ebp
push 0x113
push 0x46
push edi
call fcn.00515850
add esp, 0x14
mov edx, eax
jmp 0x546eee
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.005612d0
mov eax, dword [edi + 0x74]
add esp, 0x10
test eax, eax
jle 0x546f15
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 0x546f2f
push ebx
push esi
push ecx
call fcn.005278f0
add esp, 0xc
jmp 0x546f38
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 0x546cd0
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 0x54712e
cmp dword [edx], 0
jne 0x546fd4
cmp byte [edx + 0x14], 0
jne 0x546fc7
xor eax, eax
mov byte [esp + 0xdc], 4
mov dword [esp + 0xec], eax
jmp 0x54712e
mov byte [esp + 0xdc], 6
jmp 0x54712e
test eax, eax
je 0x54712e
xor edi, edi
mov edi, edi
mov eax, dword [eax + 0x14]
inc edi
test eax, eax
jne 0x546fe0
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 0x54700e
push edx
push ebx
push ecx
call fcn.00537860
add esp, 0xc
mov edx, eax
jmp 0x547078
mov eax, ebx
or eax, edx
je 0x547076
test edx, edx
ja 0x547076
jb 0x547022
cmp ebx, 0x7fffff00
jae 0x547076
cmp dword [0x8f4e18], edx
je 0x547064
mov eax, dword [0x973ba0]
test eax, eax
je 0x54703d
push eax
call dword [0x8f4e68]
add esp, 4
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.0051b7d0
mov eax, dword [0x973ba0]
add esp, 8
test eax, eax
je 0x54705e
push eax
call dword [0x8f4e70]
add esp, 4
mov edx, dword [esp + 0x40]
jmp 0x547078
push ebx
call dword [0x8f4e38]
add esp, 4
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x54707c
xor edx, edx
mov dword [esp + 0x18], edx
test edx, edx
je 0x548cde
push ebx
push 0
push edx
call sub.MSVCRT.dll_memset
mov edx, dword [esp + 0x24]
add esp, 0xc
test edx, edx
je 0x548cde
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 0x5470ff
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x5470f4
mov eax, dword [esi + 8]
xor ecx, ecx
test eax, eax
je 0x5470dc
lea esp, [esp]
cmp eax, edx
je 0x5470dc
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x5470d0
cmp byte [ecx + ebp], 0
mov edx, dword [esp + 0x18]
jne 0x5470f8
mov byte [ecx + ebp], 1
mov dword [edx + ebx*8], eax
mov dword [edx + ebx*8 + 4], ecx
inc ebx
jmp 0x5470f8
mov edx, dword [esp + 0x18]
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x5470b4
mov eax, esi
xor ecx, ecx
mov esi, dword [esp + 0x5c]
mov eax, dword [eax + 8]
test eax, eax
je 0x547127
lea edx, [edx + ebx*8]
cmp byte [ecx + ebp], 0
jne 0x54711f
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x547111
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 0x547162
mov dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jmp 0x547226
and ecx, 0x2000
or ecx, 0
push 0
push 0
je 0x5471a6
push pe_nt_image_headers32
push ebx
push edi
call fcn.0055d050
mov ebp, eax
add esp, 0x14
mov dword [esp + 0x80], ebp
test ebp, ebp
jne 0x5471c5
push eax
push eax
push ebx
push edi
call fcn.00541870
add esp, 0x10
test eax, eax
jne 0x5471c5
mov dword [esp + 0x4c], eax
jmp 0x547226
push ebx
push edi
mov dword [esp + 0x90], 0
call fcn.00541870
mov edx, eax
add esp, 0x10
mov dword [esp + 0x4c], edx
test edx, edx
je 0x547226
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 0x5471e9
push 0
push edx
push 0
push 0x47
push esi
call fcn.00515850
add esp, 0x14
jmp 0x547218
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 0x54786e
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x54786e
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 0x54725e
movzx ebx, al
jmp 0x547268
cmp ebx, 0xb
jne 0x547268
mov ebx, 2
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x54730a
mov eax, ecx
lea esp, [esp]
cmp dword [eax], 0
je 0x547292
cmp dword [eax + 0x1c], 0
je 0x547292
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x547280
mov dword [esp + 0x58], eax
test eax, eax
je 0x5472a9
xor ebx, ebx
cmp byte [eax + 0x14], bl
setne bl
lea ebx, [ebx*2 + 4]
cmp eax, ecx
je 0x547303
mov edx, dword [esi + 0x74]
mov dword [esp + 0x64], edx
cmp dword [esi + 0x78], edx
jg 0x5472d0
push 0
push 0
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
mov dword [esp + 0x64], eax
jmp 0x547303
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 0x547388
cmp al, bl
je 0x547388
mov eax, dword [esp + 0xc0]
cmp dword [eax + 8], 0
je 0x547388
cmp dword [esp + 0x64], 0
jne 0x547388
mov edx, dword [esi + 0x74]
cmp dword [esi + 0x78], edx
jg 0x547344
push 0
push 0
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
mov edx, eax
jmp 0x54737e
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 0x5473ff
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5473b3
push dword [esp + 0xd4]
push ebp
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.00515850
add esp, 0x14
jmp 0x5473e8
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 0x5473ff
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 0x54742a
push dword [esp + 0xd0]
push ebp
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.00515850
mov edx, dword [esp + 0xdc]
add esp, 0x14
jmp 0x547466
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.0x547472
jmp dword [eax*4 + 0x548d00]
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x547539
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x54748e
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.00548f30
mov ecx, dword [esi + 0x74]
add esp, 0x2c
cmp dword [esi + 0x78], ecx
jg 0x5474f2
push 0
push 1
push ebx
push 0x55
push esi
call fcn.00515850
add esp, 0x14
mov dword [esp + 0x88], 1
mov dword [esp + 0x7c], 1
jmp 0x547743
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 0x547743
mov ecx, dword [esp + 0xc0]
cmp dword [ecx + 8], 0
je 0x547569
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x54754f
mov eax, edi
push 0xffffffffffffffff
push 0
push dword [esp + 0xd4]
mov byte [eax + 0x14], 1
push edx
push ecx
push edi
call fcn.00549320
add esp, 0x18
mov dword [esp + 0x7c], 1
jmp 0x547743
mov eax, dword [esp + 0xec]
push edx
push 0
push dword [esp + 0xc8]
push eax
push edi
call fcn.00560060
add esp, 0x14
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5475b4
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
jmp 0x547743
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 0x547743
mov ebx, 2
mov edx, dword [esp + 0xc0]
movzx eax, word [edx + 0x20]
test ax, ax
js 0x54762a
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.0054e0f0
add esp, 0x10
mov dword [esp + 0x24], 0x613
jmp 0x547643
push dword [edx]
push str._s.rowid
push dword [edi]
call fcn.0054e0f0
add esp, 0xc
mov dword [esp + 0x24], 0xa13
mov edi, dword [edi + 8]
mov ebp, eax
test edi, edi
jne 0x54766f
mov ecx, dword [esp + 0xbc]
cmp dword [ecx + 0x74], edi
jne 0x547664
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x547664
mov byte [ecx + 0x17], 1
push ecx
call fcn.005617d0
add esp, 4
mov edi, eax
cmp ebx, 2
jne 0x547688
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x547684
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x5476a6
push 0
push ebx
push dword [esp + 0x2c]
push 0x46
push edi
call fcn.00515850
add esp, 0x14
mov edx, eax
jmp 0x5476d9
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 0x5476ef
push ebp
push 0xfffffffffffffff9
push eax
call fcn.00502620
add esp, 0xc
jmp 0x547721
test edx, edx
jns 0x5476f7
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 0x547714
test ebp, ebp
je 0x547721
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xf9
jmp 0x547721
push 0xfffffffffffffff9
push ebp
push eax
push edi
call fcn.0057a650
add esp, 0x10
mov eax, dword [edi + 0x74]
mov ebp, dword [esp + 0x40]
test eax, eax
jle 0x54773c
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 0x54775d
push ebp
push esi
push ecx
call fcn.005278f0
add esp, 0xc
jmp 0x547766
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 0x5477db
cmp dword [esp + 0x58], ecx
je 0x5477db
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x84], ecx
cmp dword [esi + 0x78], ecx
jg 0x5477a3
push 0
push 0
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
mov dword [esp + 0x84], eax
jmp 0x54786e
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 0x54786e
mov ebp, dword [esp + 0x8c]
test ebp, ebp
je 0x547875
mov ebx, dword [esi + 0x74]
mov dword [esp + 0x90], ebx
cmp dword [esi + 0x78], ebx
jg 0x547813
push 0
push 0
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
mov dword [esp + 0x90], eax
jmp 0x547846
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 0x547853
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x547862
mov eax, 0x973ecc
jmp 0x54786b
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 0x547887
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 4]
mov ebx, dword [eax]
jmp 0x54788d
mov ebx, dword [esp + 0x2c]
xor ebp, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebp
test ebx, ebx
je 0x5488e5
lea ecx, [ecx]
mov eax, dword [esp + 0xc4]
cmp dword [eax + ebp*4], 0
je 0x548889
test ecx, ecx
je 0x547902
mov eax, ecx
cmp dword [eax], 0
je 0x5478c8
cmp dword [eax + 0x1c], ebx
je 0x5478c8
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x5478b7
cmp dword [esp + 0x64], 0
mov dword [esp + 0x58], eax
je 0x547902
cmp eax, ecx
jne 0x547902
mov eax, dword [esp + 0x64]
mov ecx, eax
mov edx, dword [esi + 0x74]
test eax, eax
jns 0x5478e7
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x5478f6
mov eax, 0x973ecc
jmp 0x5478ff
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 0x547931
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.0055c5d0
add esp, 0xc
mov byte [esp + 0x13], 1
add ebp, dword [esp + 0xcc]
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x68], ebp
je 0x547a07
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 0x54796e
push 0
push edx
push 0
push 0x4a
push esi
call fcn.00515850
add esp, 0x14
jmp 0x5479a1
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 0x5479c9
push 0
push 0
push eax
push ebx
call fcn.004fe730
add esp, 0x10
mov edi, eax
jmp 0x5479cb
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x5479e7
push 0x10
push dword [esp + 0x24]
push edi
push dword [esp + 0xc8]
call fcn.0053d910
add esp, 0x10
test edi, edi
je 0x5479f5
push edi
push ebx
call fcn.0053d5f0
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 0x547bf4
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 0x547aae
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 0x547a70
push 0
push 0
push eax
push ebx
call fcn.004fe730
add esp, 0x10
mov edi, eax
jmp 0x547a72
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x547a89
push ebp
push edi
push dword [esp + 0xc4]
call fcn.0053a880
add esp, 0xc
test edi, edi
je 0x547a97
push edi
push ebx
call fcn.0053d5f0
add esp, 8
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x38]
mov dword [edi + 0x34], 0
jmp 0x547bc7
cmp ecx, 0xffffffff
je 0x547b76
mov eax, dword [esp + 0xc0]
movsx eax, word [eax + 0x20]
cmp ecx, eax
je 0x547b76
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x20
je 0x547b2c
test cx, cx
js 0x547b2c
movsx ecx, cx
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x547b03
mov eax, dword [eax + 4]
mov edi, ecx
add eax, 0xe
nop
test byte [eax], 0x20
jne 0x547af6
inc edx
add eax, 0x10
dec ecx
jne 0x547af0
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, edi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x547b27
mov eax, dword [esp + 0xc0]
mov ax, word [eax + 0x24]
sub ax, dx
add ax, di
movzx eax, ax
jmp 0x547b2f
movzx eax, dx
jmp 0x547b2f
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 0x547b5a
push 0
push ebp
push edx
push 0x50
push esi
call fcn.00515850
mov edi, dword [esp + 0xd0]
add esp, 0x14
jmp 0x547bc7
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 0x547baf
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x547b95
push 0
push ebp
push dword [esp + 0xd8]
push 0x51
push esi
call fcn.00515850
add esp, 0x14
jmp 0x547bc7
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 0x547a34
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 0x547c1e
push edx
push edi
push eax
push 0x60
push esi
call fcn.00515850
add esp, 0x14
jmp 0x547c4d
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 0x547c95
cmp edx, ebx
jne 0x547c95
cmp byte [esp + 0xd8], 0
jne 0x547c95
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x547c87
push edx
push esi
push ecx
call fcn.005278f0
add esp, 0xc
jmp 0x548885
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
jmp 0x548885
movzx ebx, byte [ebx + 0x36]
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x547cc2
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x547c87
push edx
push esi
push ecx
call fcn.005278f0
add esp, 0xc
jmp 0x548885
mov al, byte [esp + 0xdc]
cmp al, 0xb
je 0x547cd2
movzx ebx, al
jmp 0x547cdc
cmp ebx, 0xb
jne 0x547ce0
mov ebx, 2
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x547cfb
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 0x547d52
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x14], 0
jne 0x547d52
cmp edx, ecx
jne 0x547d52
cmp ebx, 5
jne 0x547d52
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
and eax, 0x2000
mov dword [esp + 0x40], eax
lea eax, [ebx - 5]
jne 0x547d2e
test eax, eax
je 0x547d89
mov edi, dword [esp + 0xc0]
push 0
push 0
push pe_nt_image_headers32
push edi
push dword [esp + 0xcc]
call fcn.0055d050
add esp, 0x14
test eax, eax
je 0x547d90
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 0x547dee
push dword [esp + 0x48]
push dword [esp + 0x24]
push ebp
push 0x1d
push esi
call fcn.00515850
mov edx, eax
add esp, 0x14
mov dword [esp + 0x3c], edx
jmp 0x547e21
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 0x547dab
test eax, eax
je 0x547dc9
cmp dword [edi + 0x30], eax
jne 0x547d52
mov eax, dword [edi + 0x3c]
push 0
push dword [edi]
add eax, 0x38
push eax
call fcn.00500250
add esp, 0xc
cmp dword [eax + 8], 0
jne 0x547d52
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x547c87
push edx
push esi
push ecx
call fcn.005278f0
add esp, 0xc
jmp 0x548885
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 0x547e38
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 0x547e4c
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], edx
jmp 0x547ead
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0xbc]
cmp eax, 1
jne 0x547e7c
mov al, byte [edi + 0x13]
test al, al
jne 0x547e6b
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
jmp 0x547ea5
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x98]
jmp 0x547ea5
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x50], edx
cmp eax, ecx
jg 0x547e98
add eax, edx
sub ecx, dword [esp + 0x70]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], ecx
jmp 0x547ea9
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 0x547ebd
cmp ebx, 5
jne 0x548282
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x80
jne 0x547f97
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x547eee
push 0
push edx
push ebp
push 0x8d
push esi
call fcn.00515850
mov edx, dword [esp + 0x64]
add esp, 0x14
jmp 0x547f19
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 0x548282
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x547f45
push dword [esp + 0xd4]
push dword [esp + 0x24]
push edx
push 0x35
push esi
call fcn.00515850
add esp, 0x14
jmp 0x547f77
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 0x548282
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x548282
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x548046
xor ecx, ecx
xor ebp, ebp
cmp cx, word [eax + 0x32]
jae 0x548046
mov ebx, edx
movzx edx, word [edi + 0x34]
xor ecx, ecx
test edx, edx
jle 0x547fdd
mov eax, dword [eax + 4]
movzx edi, word [eax + ebp*2]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
jmp 0x547fd0
cmp di, word [eax]
je 0x547ffe
inc ecx
add eax, 2
cmp ecx, edx
jl 0x547fd0
or eax, 0xffffffff
mov ecx, dword [esi + 0x74]
movsx edx, ax
cmp dword [esi + 0x78], ecx
jg 0x548003
push ebx
push edx
push dword [esp + 0x70]
push 0x5d
push esi
call fcn.00515850
add esp, 0x14
jmp 0x54802e
movzx eax, cx
jmp 0x547fe0
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 0x547fb3
cmp byte [esp + 0x12], 0
je 0x548282
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 0x548077
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ebx
test ecx, ecx
jle 0x548282
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 0x54818b
movzx eax, bh
push eax
push edi
push ecx
call fcn.005000e0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x5480d8
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 0x548101
test ebp, ebp
je 0x5480ed
cmp dword [ebp + 0xc], 0
jne 0x548101
push edi
push ebp
push dword [esp + 0xb8]
push eax
call fcn.005494c0
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 0x548129
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 0x54819c
test dx, dx
js 0x54819c
movsx ecx, dx
xor ebx, ebx
xor edi, edi
test ecx, ecx
jle 0x548163
mov eax, dword [eax + 4]
mov ebx, ecx
add eax, 0xe
mov edi, edi
test byte [eax], 0x20
jne 0x548156
inc edi
add eax, 0x10
dec ecx
jne 0x548150
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, ebx
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x548193
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 0x54819f
mov ebp, dword [ecx + 8]
jmp 0x5480df
mov ebx, dword [esp + 0x24]
movzx eax, di
jmp 0x54819f
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 0x5481d2
mov eax, dword [esp + 0x40]
add eax, ebx
push eax
push dword [esp + 0x3c]
push edi
push dword [esp + 0x84]
push esi
call fcn.00515850
add esp, 0x14
mov edx, eax
jmp 0x54820e
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 0x548224
push ebp
push 0xfffffffffffffffe
push eax
call fcn.00502620
add esp, 0xc
jmp 0x548256
test edx, edx
jns 0x54822c
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 0x54824b
push 0xfffffffffffffffe
push ebp
push eax
push esi
call fcn.0057a650
add esp, 0x10
jmp 0x548256
test ebp, ebp
je 0x548256
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xfe
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x54826d
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 0x548090
mov ecx, dword [esp + 0x60]
lea eax, [ecx - 1]
cmp eax, 5
ja case.0x548292.5
jmp dword [eax*4 + 0x548d18]
push dword [esp + 0x14]
mov ebx, dword [esp + 0xc0]
push ecx
push ebx
call fcn.0055d210
add esp, 0xc
jmp 0x548779
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.00560060
add esp, 0x14
jmp 0x5482e3
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x548306
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
jmp 0x548779
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 0x548779
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 0x548371
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x548366
mov eax, ebx
inc dword [esp + 0x88]
mov byte [eax + 0x14], 1
cmp dword [esp + 0x80], 0
je 0x5483db
cmp byte [esp + 0x12], 0
je 0x5483db
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5483a5
push 0
push 0
push dword [esp + 0xd0]
push 0xa6
push esi
call fcn.00515850
add esp, 0x14
jmp 0x5483db
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.00548f30
add esp, 0x2c
cmp dword [esp + 0x80], 0
je 0x54848c
cmp byte [esp + 0x12], 0
je 0x54848c
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x548456
push 0
push 0
push dword [esp + 0xd0]
push 0xa7
push esi
call fcn.00515850
add esp, 0x14
jmp 0x54848c
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 0x548771
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5484b2
push 0
push 1
push edx
push 0x55
push esi
call fcn.00515850
add esp, 0x14
jmp 0x5484e5
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 0x548508
push 0
push 0
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
mov dword [esp + 0x78], eax
jmp 0x54853b
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 0x548559
push edx
push esi
push ecx
call fcn.005278f0
add esp, 0xc
jmp 0x548562
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 0x5485ca
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x74]
dec edx
cmp dword [esi + 0x78], ecx
jg 0x548597
push 0
push dword [esp + 0x38]
push edx
push 0x32
push esi
call fcn.00515850
add esp, 0x14
jmp 0x5485ca
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 0x548736
mov ecx, edi
test edi, edi
jns 0x5485dc
mov ecx, dword [esi + 0x74]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x5485eb
mov eax, 0x973ecc
jmp 0x5485f4
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 0x548715
movzx eax, cl
mov dword [esp + 0x24], eax
test byte [eax + 0x5c02c8], 1
je 0x54862e
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 0x54865a
push dword [esp + 0x38]
push ebp
push dword [esp + 0x84]
push eax
push esi
call fcn.00515850
add esp, 0x14
mov edx, eax
jmp 0x548699
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 0x5486b3
cmp ebx, 0xfffffff4
je 0x5486fb
push edi
push ebx
push eax
call fcn.00502620
add esp, 0xc
jmp 0x5486fb
test edx, edx
jns 0x5486bb
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 0x5486ef
cmp byte [eax + 1], 0
jne 0x5486ef
cmp ebx, 0xfffffffd
jne 0x5486db
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
jmp 0x5486fb
test edi, edi
je 0x5486fb
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
cmp ebx, 0xfffffff4
jne 0x5486fb
inc dword [edi + 0xc]
jmp 0x5486fb
push ebx
push edi
push eax
push esi
call fcn.0057a650
add esp, 0x10
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x548715
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 0x5485d2
mov ebx, dword [esp + 0xbc]
push dword [esp + 0x14]
push 2
push ebx
call fcn.0055d210
mov ecx, dword [esp + 0x84]
add esp, 0xc
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x548756
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x548765
mov eax, 0x973ecc
jmp 0x54876e
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 0x548797
push edx
push esi
push ecx
call fcn.005278f0
add esp, 0xc
jmp 0x5487a0
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 0x5487d8
mov eax, dword [esp + 0x70]
cmp eax, 1
jne 0x5487cd
test ecx, ecx
je 0x5487d8
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x5487d8
movzx eax, al
mov dword [ebx + eax*4 + 0x98], ecx
inc byte [ebx + 0x13]
jmp 0x5487d8
cmp eax, dword [ebx + 0x1c]
jle 0x5487d8
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], ecx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x548885
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x548885
mov eax, dword [eax + 0x10]
test eax, eax
je 0x548809
cmp dword [eax], 0
je 0x548809
cmp dword [eax + 0x1c], 0
jne 0x548885
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 0x74]
inc edx
cmp dword [esi + 0x78], ecx
jg 0x548828
push 0
push edx
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
jmp 0x548857
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 0x548861
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x548870
mov eax, 0x973ecc
jmp 0x548879
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 0x5488b8
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 0x5488e5
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 0x5488ca
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 0x5488e5
mov edi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xec]
jmp 0x5478a0
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x548965
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x54890a
push 0
push edx
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
jmp 0x548939
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 0x54894a
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x548959
mov eax, 0x973ecc
jmp 0x548962
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 0x548c58
mov ecx, dword [esi + 0x74]
mov edx, dword [esp + 0x4c]
cmp dword [esi + 0x78], ecx
jg 0x548993
push 0
push dword [esp + 0x38]
push edx
push 0x14
push esi
call fcn.00515850
add esp, 0x14
jmp 0x5489c2
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 0x548be8
cmp byte [esp + 0x12], 0
je 0x548a48
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x5489fc
push dword [esp + 0xd4]
push edi
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.00515850
add esp, 0x14
jmp 0x548a31
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 0x548a48
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 0x548a6c
push dword [esp + 0xd0]
push edi
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.00515850
add esp, 0x14
jmp 0x548aa1
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 0x548adb
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.0054e0f0
add esp, 0x10
mov ebp, 0x613
jmp 0x548af8
push dword [edx]
mov eax, dword [esp + 0xc0]
push str._s.rowid
push dword [eax]
call fcn.0054e0f0
add esp, 0xc
mov ebp, 0xa13
mov ecx, dword [esp + 0xbc]
mov ebx, eax
mov edi, dword [ecx + 8]
test edi, edi
jne 0x548b2b
cmp dword [ecx + 0x74], edi
jne 0x548b19
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x548b19
mov byte [ecx + 0x17], 1
push ecx
call fcn.005617d0
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x548b34
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x548b54
push 0
push 2
push ebp
push 0x46
push edi
call fcn.00515850
add esp, 0x14
mov edx, eax
jmp 0x548b87
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 0x548b9d
push ebx
push 0xfffffffffffffff9
push eax
call fcn.00502620
add esp, 0xc
jmp 0x548bcf
test edx, edx
jns 0x548ba5
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 0x548bc2
test ebx, ebx
je 0x548bcf
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0xf9
jmp 0x548bcf
push 0xfffffffffffffff9
push ebx
push eax
push edi
call fcn.0057a650
add esp, 0x10
mov eax, dword [edi + 0x74]
test eax, eax
jle 0x548c31
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x548c31
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x548c02
push 0
push edi
push 0
push 0xb
push esi
call fcn.00515850
add esp, 0x14
jmp 0x548c31
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 0x548c4f
push edx
push esi
push ecx
call fcn.005278f0
add esp, 0xc
jmp 0x548c58
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 0x548cd1
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 0x548c97
push edx
push edi
push ebx
push 0x60
push esi
call fcn.00515850
add esp, 0x14
jmp 0x548cbe
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 0x548cd1
push 0
push ebp
push esi
call fcn.0055c5d0
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