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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x13c]
cmp eax, dword [ecx + 8]
jbe 0x54a6ba
sub esp, 0x1bc
mov ebx, dword [esp + 0x1c4]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
ja 0x549740
xchg ebp, eax
cmp al, 4
xchg ebp, eax
ja 0x54929a
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jbe 0x549144
xchg ebp, eax
cmp al, 3
xchg ebp, eax
jne 0x5490e3
mov ebp, dword [ebx + 0x18]
test ebp, ebp
je 0x548fd3
mov dword [esp + 0x88], ebp
mov esi, dword [esp + 0x1c0]
xor eax, eax
xor ecx, ecx
xor edx, edx
xor edi, edi
xor eax, eax
mov dword [esp + 0x5c], eax
xor eax, eax
jmp 0x54a544
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x18c]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0x18c], 6
mov ecx, dword [esp + 0x1c0]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx]
mov eax, edx
mov edx, dword [ecx + 8]
mov esi, ecx
lea ecx, [ebx + 1]
cmp edx, ecx
jae 0x549074
mov dword [esp + 0xb0], esi
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x549062
mov dword [edi], eax
jmp 0x549067
call fcn.0045d700
mov esi, edi
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebx + 1]
mov dword [esi + 4], ecx
mov ecx, dword [0x705d20]
lea edx, [ebx + ebx*2]
lea edi, [ebp + edx*8]
test ecx, ecx
jne 0x549099
lea esi, [esp + 0x18c]
call fcn.0045de14
jmp 0x5490bd
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x18c]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
movzx ebx, word [ebx + 2]
mov ebp, dword [esp + 0x1c0]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov word [esp + 0x10], bx
call fcn.0054ad30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 1
xchg ebp, eax
je 0x54926a
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x54a255
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x1a4]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0x1a4], 6
mov ecx, dword [esp + 0x1c0]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx]
mov eax, edx
mov edx, dword [ecx + 8]
mov esi, ecx
lea ecx, [ebx + 1]
cmp edx, ecx
jae 0x5491fb
mov dword [esp + 0xb0], esi
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x5491e9
mov dword [edi], eax
jmp 0x5491ee
call fcn.0045d700
mov esi, edi
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebx + 1]
mov dword [esi + 4], ecx
mov ecx, dword [0x705d20]
lea edx, [ebx + ebx*2]
lea edi, [ebp + edx*8]
test ecx, ecx
jne 0x549220
lea esi, [esp + 0x1a4]
call fcn.0045de14
jmp 0x549244
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x1a4]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
mov byte [esp + 0x1d4], 0
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 6
xchg ebp, eax
ja 0x54937c
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x549314
mov eax, dword [0x6d9fc0]
mov ecx, dword [0x6d9fc4]
mov edx, dword [0x6d9fc8]
mov ebx, dword [esp + 0x1c0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov word [esp + 0x10], 0
call fcn.0054ad30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
mov eax, dword [0x6d9fb0]
mov ecx, dword [0x6d9fb4]
mov edx, dword [0x6d9fb8]
mov ebx, dword [esp + 0x1c0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov word [esp + 0x10], 0
call fcn.0054ad30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 7
xchg ebp, eax
jne 0x5494c1
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x174]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0x174], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x54942f
mov dword [esp + 0xb0], edi
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x549418
mov dword [edi], eax
jmp 0x54941d
call fcn.0045d700
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x705d20]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x549454
lea esi, [esp + 0x174]
call fcn.0045de14
jmp 0x549478
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x174]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x54a50b
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 1
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 8
xchg ebp, eax
jne 0x549606
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x15c]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0x15c], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x549574
mov dword [esp + 0xb0], edi
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x54955d
mov dword [edi], eax
jmp 0x549562
call fcn.0045d700
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x705d20]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x549599
lea esi, [esp + 0x15c]
call fcn.0045de14
jmp 0x5495bd
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x15c]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x54a506
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 2
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x144]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0x144], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x5496ae
mov dword [esp + 0xb0], edi
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x549697
mov dword [edi], eax
jmp 0x54969c
call fcn.0045d700
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x705d20]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x5496d3
lea esi, [esp + 0x144]
call fcn.0045de14
jmp 0x5496f7
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x144]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x54a501
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 4
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
ja 0x549df5
xchg ebp, eax
cmp al, 0xb
xchg ebp, eax
jbe 0x549b76
xchg ebp, eax
cmp al, 0xc
xchg ebp, eax
je 0x549a3c
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
mov ebp, dword [ebx + 0x30]
mov dword [esp + 0x88], ebp
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0xe4]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0xe4], 2
mov ecx, dword [esp + 0x1c0]
mov esi, ebx
mov ebx, dword [ecx]
mov dword [esp + 0xb0], ebx
mov edi, ebp
mov ebp, dword [ebx + 4]
mov edx, dword [ebx]
mov ecx, dword [ebx + 8]
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x549813
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x5497fa
mov dword [edi], eax
jmp 0x5497ff
call fcn.0045d700
mov esi, dword [esp + 0x1c4]
mov edi, dword [esp + 0x88]
mov ebp, ecx
mov edx, eax
xor eax, eax
lea ecx, [ebp + 1]
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 4], ecx
mov ecx, dword [0x705d20]
lea ebx, [ebp + ebp*2]
lea edx, [edx + ebx*8]
test ecx, ecx
jne 0x549843
mov edi, edx
mov ebx, esi
lea esi, [esp + 0xe4]
call fcn.0045de14
jmp 0x549869
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edx
lea eax, [esp + 0xe4]
mov dword [esp + 8], eax
call fcn.0040fb30
xor eax, eax
mov ebx, dword [esp + 0x1c4]
mov edx, dword [esp + 0x1c0]
mov ebp, dword [edx]
mov ecx, dword [ebp + 4]
mov ebp, dword [ebp]
mov esi, dword [esp + 0x84]
cmp esi, ecx
jae 0x54a4fa
mov edi, dword [esp + 0x88]
shl edi, 1
mov ecx, esi
lea esi, [esi + esi*2]
lea ebp, [ebp + esi*8 + 8]
mov dword [ebp], edi
mov ebp, dword [edx]
lea esi, [edi + 1]
cmp dword [ebp + 0x10], esi
jge 0x5498a9
mov dword [ebp + 0x10], esi
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 4]
test ebp, ebp
jbe 0x54a4f1
mov eax, dword [esi]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00548f50
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
mov edx, dword [esp + 0x1c4]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x80], ebx
nop
mov ecx, dword [ecx + 4]
mov dword [esp + 0x7c], ecx
mov ebp, dword [esp + 8]
mov dword [esp + 0x78], ebp
movzx esi, byte [esp + 0x14]
xchg esi, eax
mov byte [esp + 0x37], al
xchg esi, eax
lea edi, [esp + 0xcc]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0xcc], 2
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
mov edi, dword [ecx + 4]
mov ebx, dword [ecx]
mov esi, dword [ecx + 8]
lea ebp, [edi + 1]
cmp esi, ebp
jae 0x549997
mov dword [esp + 0xb0], ecx
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x54997c
mov dword [edi], eax
jmp 0x549981
call fcn.0045d700
mov edx, dword [esp + 0x88]
mov ebx, eax
mov eax, dword [esp + 0x1c0]
mov ebp, ecx
mov ecx, edi
mov edi, ebp
lea ebp, [edi + 1]
mov dword [ecx + 4], ebp
mov ecx, dword [0x705d20]
lea ebp, [edi + edi*2]
lea edi, [ebx + ebp*8]
test ecx, ecx
jne 0x5499bb
lea esi, [esp + 0xcc]
call fcn.0045de14
jmp 0x5499e6
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x88]
mov ebx, dword [eax]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx]
mov ebp, dword [esp + 0x7c]
cmp ebp, ecx
jae 0x54a4ea
shl edx, 1
or edx, 1
lea esi, [ebp + ebp*2]
lea ebx, [ebx + esi*8 + 8]
mov dword [ebx], edx
mov ebx, dword [eax]
inc edx
cmp dword [ebx + 0x10], edx
jge 0x549a13
mov dword [ebx + 0x10], edx
mov edx, dword [esp + 0x84]
test edx, edx
je 0x549a26
mov ebx, dword [esp + 0x78]
test ebx, ebx
jne 0x549a31
xor esi, esi
xor ecx, ecx
xor edx, edx
jmp 0x54a447
mov esi, edx
shl edx, 1
mov edi, dword [eax]
jmp 0x54a3ff
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0xfc]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0xfc], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x549ae4
mov dword [esp + 0xb0], edi
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x549acd
mov dword [edi], eax
jmp 0x549ad2
call fcn.0045d700
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x705d20]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x549b09
lea esi, [esp + 0xfc]
call fcn.0045de14
jmp 0x549b2d
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xfc]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x54a3ef
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 0x20
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
jne 0x549cbb
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x12c]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0x12c], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x549c29
mov dword [esp + 0xb0], edi
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x549c12
mov dword [edi], eax
jmp 0x549c17
call fcn.0045d700
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x705d20]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x549c4e
lea esi, [esp + 0x12c]
call fcn.0045de14
jmp 0x549c72
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x12c]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x54a3ea
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 8
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x114]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0x114], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x549d63
mov dword [esp + 0xb0], edi
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x549d4c
mov dword [edi], eax
jmp 0x549d51
call fcn.0045d700
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x705d20]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x549d88
lea esi, [esp + 0x114]
call fcn.0045de14
jmp 0x549dac
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x114]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x54a3e5
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 0x10
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0xf
xchg ebp, eax
jbe 0x54a019
xchg ebp, eax
cmp al, 0x10
xchg ebp, eax
je 0x549f7b
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x549f4d
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
test ecx, ecx
je 0x549e3d
mov dword [esp + 0x88], ecx
mov dword [esp + 0xac], edx
xor eax, eax
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x54a293
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0xb4]
xor eax, eax
call fcn.0045d93a
mov byte [esp + 0xb4], 6
mov ecx, dword [esp + 0x1c0]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx]
mov eax, edx
mov edx, dword [ecx + 8]
mov esi, ecx
lea ecx, [ebx + 1]
cmp edx, ecx
jae 0x549ede
mov dword [esp + 0xb0], esi
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.004472c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x705d20]
test edx, edx
jne 0x549ecc
mov dword [edi], eax
jmp 0x549ed1
call fcn.0045d700
mov esi, edi
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebx + 1]
mov dword [esi + 4], ecx
mov ecx, dword [0x705d20]
lea edx, [ebx + ebx*2]
lea edi, [ebp + edx*8]
test ecx, ecx
jne 0x549f03
lea esi, [esp + 0xb4]
call fcn.0045de14
jmp 0x549f27
lea eax, [0x592220]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.0040fb30
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0x13
xchg ebp, eax
jne 0x54a255
mov eax, dword [ebx + 4]
mov dword [esp + 0xa8], eax
mov ecx, dword [ebx + 8]
mov dword [esp + 0x88], ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x54a228
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
test ecx, ecx
jbe 0x54a176
mov eax, dword [edx]
mov ecx, dword [esp + 0x1c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00548f50
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1c4]
movzx ebp, word [ebp + 2]
mov esi, dword [esp + 0x1c0]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov byte [esp + 0x10], bl
test bp, 0x20
setne al
mov byte [esp + 0x14], al
call fcn.0054a8e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0xe
xchg ebp, eax
jne 0x54a0c2
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
test ecx, ecx
jbe 0x54a16f
mov eax, dword [edx]
mov ecx, dword [esp + 0x1c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00548f50
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1c4]
movzx ebp, word [ebp + 2]
mov esi, dword [esp + 0x1c0]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov byte [esp + 0x10], bl
test bp, 0x20
setne al
mov byte [esp + 0x14], al
call fcn.0054ac10
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
test ecx, ecx
jbe 0x54a168
mov eax, dword [edx]
mov ecx, dword [esp + 0x1c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00548f50
movzx eax, byte [esp + 0x14]
mov byte [esp + 0x36], al
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c4]
movzx ebx, word [ebx + 2]
mov ebp, dword [esp + 8]
mov dword [esp + 0x3c], ebp
mov esi, dword [esp + 0x1c0]
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov byte [esp + 0x10], al
test bx, 0x20
setne cl
mov byte [esp + 0x14], cl
call fcn.0054aa80
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
movzx eax, byte [esp + 0x36]
mov byte [esp + 0x1d4], al
add esp, 0x1bc
ret
xor eax, eax
call fcn.0045d780
xor eax, eax
call fcn.0045d780
xor eax, eax
call fcn.0045d780
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], ebp
xchg edi, eax
mov byte [esp + 0x38], al
xchg edi, eax
mov dword [esp + 0x6c], esi
mov dword [esp + 0x84], edx
mov ecx, dword [eax + edx*4]
mov ebx, dword [esp + 0x1c0]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00548f50
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1c0]
mov dword [esp], ebp
mov esi, dword [esp + 0x6c]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0xc], esi
movzx esi, byte [esp + 0x38]
xchg esi, eax
mov byte [esp + 0x10], al
xchg esi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov byte [esp + 0x20], bl
call fcn.0054a6d0
mov eax, dword [esp + 0x84]
lea edx, [eax + 1]
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
movzx edi, byte [esp + 0x30]
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x88]
cmp edx, ecx
jl 0x54a17d
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x1cc], ebp
mov dword [esp + 0x1d0], ebx
xchg edi, eax
mov byte [esp + 0x1d4], al
xchg edi, eax
add esp, 0x1bc
ret
lea eax, [0x5842a0]
mov dword [esp], eax
lea eax, [0x5eb1f8]
mov dword [esp + 4], eax
call fcn.00433320
mov edx, dword [esp + 0x44]
inc edx
mov esi, eax
mov edi, ecx
mov ecx, dword [esp + 0x88]
mov eax, edx
mov edx, dword [esp + 0xac]
mov ecx, ebx
mov ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x88]
cmp eax, ecx
jge 0x54a35f
mov dword [esp + 0x44], eax
mov edi, dword [edx + eax*4]
test eax, eax
jne 0x54a2d2
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00548f50
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, eax
mov eax, ecx
mov ecx, edx
jmp 0x54a26d
xchg ebp, eax
mov byte [esp + 0x39], al
xchg ebp, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00548f50
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x70]
test ebp, ebp
je 0x54a310
test edx, edx
jne 0x54a31d
xor ecx, ecx
xor ebp, ebp
xor eax, eax
xor ebx, ebx
jmp 0x54a26d
mov byte [esp + 0x3b], bl
mov edi, dword [esp + 0x1c0]
mov esi, edi
mov edi, dword [edi]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x94]
jmp 0x54a39f
movzx edx, byte [esp + 0x39]
test dl, dl
jne 0x54a26d
xor ebx, ebx
jmp 0x54a26d
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x1cc], esi
mov dword [esp + 0x1d0], edi
xchg ebp, eax
mov byte [esp + 0x1d4], al
xchg ebp, eax
add esp, 0x1bc
ret
mov edi, dword [esp + 0x9c]
movzx ebx, byte [esp + 0x3b]
mov esi, dword [esp + 0x1c0]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x48]
test esi, esi
je 0x54a34b
mov ebp, dword [edi]
mov ebx, dword [edi + 4]
shr esi, 1
cmp ebx, esi
jbe 0x54a3dc
lea ebx, [esi + esi*2]
lea esi, [ebp + ebx*8]
mov edi, dword [esp + 0x48]
test edi, 1
jne 0x54a3cf
lea ebx, [ebp + ebx*8 + 4]
mov ebp, dword [ebx]
mov dword [ebx], edx
jmp 0x54a384
mov esi, dword [esi + 8]
lea ebx, [ebp + ebx*8 + 8]
mov dword [ebx], edx
mov ebp, esi
jmp 0x54a384
mov eax, esi
mov ecx, ebx
call fcn.0045d790
call fcn.0045d790
call fcn.0045d790
call fcn.0045d790
mov esi, dword [esp + 0x84]
mov edx, ebp
mov ebp, ecx
test edx, edx
je 0x54a43b
mov dword [esp + 0x50], edx
mov ecx, ebp
mov ebp, dword [edi]
mov esi, dword [edi + 4]
shr edx, 1
cmp esi, edx
jbe 0x54a4e1
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x50]
test esi, 1
jne 0x54a431
lea edx, [ebp + edx*8 + 4]
mov ebp, dword [edx]
mov dword [edx], ebx
jmp 0x54a3f4
lea edx, [ebp + edx*8 + 8]
mov ebp, dword [edx]
mov dword [edx], ebx
jmp 0x54a3f4
mov ecx, dword [esp + 0x80]
movzx edx, byte [esp + 0x37]
test esi, esi
je 0x54a45a
test ebp, ebp
je 0x54a45a
mov ebx, dword [eax]
mov dword [esp + 0xa0], ebx
jmp 0x54a492
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], dl
add esp, 0x1bc
ret
mov edi, dword [esp + 0xa0]
mov edx, eax
mov esi, ecx
mov ecx, ebx
mov ebx, edi
test ecx, ecx
je 0x54a4d0
mov dword [esp + 0x4c], ecx
mov edi, dword [ebx]
mov eax, edx
mov edx, dword [ebx + 4]
shr ecx, 1
cmp edx, ecx
jbe 0x54a4d8
lea edx, [ecx + ecx*2]
mov ecx, esi
lea esi, [edi + edx*8]
mov ebx, dword [esp + 0x4c]
test ebx, 1
jne 0x54a4c5
lea edx, [edi + edx*8 + 4]
mov ebx, dword [edx]
mov dword [edx], ebp
jmp 0x54a483
mov ebx, dword [esi + 8]
lea edx, [edi + edx*8 + 8]
mov dword [edx], ebp
jmp 0x54a483
shl ebp, 1
mov eax, ebp
mov ecx, esi
jmp 0x54a460
mov eax, ecx
mov ecx, edx
call fcn.0045d790
mov eax, edx
mov ecx, esi
call fcn.0045d790
mov eax, ebp
call fcn.0045d790
xor eax, eax
mov ecx, ebp
call fcn.0045d780
mov eax, esi
call fcn.0045d790
call fcn.0045d790
call fcn.0045d790
call fcn.0045d790
mov ebx, dword [esp + 0x1c4]
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x1c0]
mov eax, dword [esp + 0x84]
mov edi, esi
mov dword [esp + 0x5c], edx
mov esi, dword [esp + 0x1c0]
mov edx, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x88]
cmp eax, ebp
jge 0x54a62d
xchg edi, eax
mov byte [esp + 0x3a], al
xchg edi, eax
mov edi, dword [ebx + 0x1c]
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0xa4], ebp
lea ebp, [eax + 1]
cmp edi, ebp
jb 0x54a6b0
cmp eax, ebp
ja 0x54a6a9
mov dword [esp + 0x40], eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x74], ecx
mov dword [esp + 0x68], edx
movzx ecx, word [ebx + 2]
mov dword [esp], esi
sub edi, eax
mov edx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
shl eax, 2
sar edi, 0x1f
and eax, edi
mov edi, dword [esp + 0xa4]
add eax, edi
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov dword [esp + 0xc], edx
mov word [esp + 0x10], cx
call fcn.0054ad30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov ebp, dword [esp + 0x40]
test ebp, ebp
jne 0x54a5e3
mov ebp, eax
mov esi, ebx
jmp 0x54a510
mov ebp, dword [esp + 0x74]
test ebp, ebp
je 0x54a5ef
test eax, eax
jne 0x54a5fc
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor esi, esi
jmp 0x54a510
mov byte [esp + 0x3b], bl
mov esi, dword [esp + 0x1c0]
mov edi, dword [esi]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x8c]
jmp 0x54a66a
movzx esi, byte [esp + 0x3a]
and esi, ebx
jmp 0x54a510
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1d0], eax
xchg edi, eax
mov byte [esp + 0x1d4], al
xchg edi, eax
add esp, 0x1bc
ret
movzx ebx, byte [esp + 0x3b]
mov esi, dword [esp + 0x1c0]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x54]
test esi, esi
je 0x54a621
mov ebp, dword [edi]
mov ebx, dword [edi + 4]
shr esi, 1
cmp ebx, esi
jbe 0x54a6a0
lea ebx, [esi + esi*2]
mov esi, dword [esp + 0x54]
test esi, 1
jne 0x54a696
lea ebx, [ebp + ebx*8 + 4]
mov ebp, dword [ebx]
mov dword [ebx], eax
jmp 0x54a656
lea ebx, [ebp + ebx*8 + 8]
mov ebp, dword [ebx]
mov dword [ebx], eax
jmp 0x54a656
mov eax, esi
mov ecx, ebx
call fcn.0045d790
mov ecx, ebp
call fcn.0045d7e0
mov ecx, ebp
mov edx, edi
call fcn.0045d7c0
nop
call fcn.0045c2f0
jmp fcn.00548f50