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

Disassembly:
mov ecx, dword [0x8602c0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x130]
cmp eax, dword [ecx + 8]
jbe 0x505952
sub esp, 0x1b0
mov ebx, dword [esp + 0x1b8]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
ja 0x504980
xchg ebp, eax
cmp al, 4
xchg ebp, eax
ja 0x5044a4
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jbe 0x504340
xchg ebp, eax
cmp al, 3
xchg ebp, eax
jne 0x5042df
mov ebp, dword [ebx + 0x18]
test ebp, ebp
je 0x5041c1
mov dword [esp + 0x84], ebp
mov esi, dword [esp + 0x1b4]
xor eax, eax
xor ecx, ecx
xor edx, edx
xor edi, edi
xor eax, eax
mov dword [esp + 0x60], eax
xor eax, eax
jmp 0x5057de
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0x180]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0x180], 6
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
inc ebp
mov eax, dword [ecx]
cmp ebx, ebp
jae 0x504266
mov dword [esp + 0xa4], ecx
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x504257
call fcn.00467c50
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebp, edx
mov eax, ecx
mov ecx, ebx
mov edx, dword [esp + 0x84]
mov dword [ecx + 4], ebp
mov ecx, dword [0x860560]
lea ebx, [ebp + ebp*2]
lea edi, [eax + ebx*8 - 0x18]
test ecx, ecx
je 0x5042ad
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x180]
mov dword [esp + 8], eax
call fcn.00411510
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0x180]
call fcn.004683c4
mov dword [esp + 0x1bc], edx
shl edx, 1
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 1
add esp, 0x1b0
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 + 0x1b4]
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.00505fe0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], bl
add esp, 0x1b0
ret
xchg ebp, eax
cmp al, 1
xchg ebp, eax
je 0x504474
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x5054fe
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0x198]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0x198], 6
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
inc ebp
mov eax, dword [ecx]
cmp ebx, ebp
jae 0x5043fb
mov dword [esp + 0xa4], ecx
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x5043ec
call fcn.00467c50
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebp, edx
mov eax, ecx
mov ecx, ebx
mov edx, dword [esp + 0x84]
mov dword [ecx + 4], ebp
mov ecx, dword [0x860560]
lea ebx, [ebp + ebp*2]
lea edi, [eax + ebx*8 - 0x18]
test ecx, ecx
je 0x504442
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x198]
mov dword [esp + 8], eax
call fcn.00411510
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0x198]
call fcn.004683c4
mov dword [esp + 0x1bc], edx
shl edx, 1
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 1
add esp, 0x1b0
ret
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 0
mov byte [esp + 0x1c8], 0
add esp, 0x1b0
ret
xchg ebp, eax
cmp al, 6
xchg ebp, eax
ja 0x504586
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x50451e
mov eax, dword [0x82fdf8]
mov ecx, dword [0x82fdfc]
mov edx, dword [0x82fe00]
mov ebx, dword [esp + 0x1b4]
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.00505fe0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], bl
add esp, 0x1b0
ret
mov eax, dword [0x82fe08]
mov ecx, dword [0x82fe0c]
mov edx, dword [0x82fe10]
mov ebx, dword [esp + 0x1b4]
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.00505fe0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], bl
add esp, 0x1b0
ret
xchg ebp, eax
cmp al, 7
xchg ebp, eax
jne 0x5046dd
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0x168]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0x168], 3
mov ecx, dword [esp + 0x1b4]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x50463b
mov dword [esp + 0xa4], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x504627
call fcn.00467c50
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov dword [ebx + 4], eax
lea ebx, [eax + eax*2]
mov ebp, dword [0x860560]
lea edi, [esi + ebx*8 - 0x18]
test ebp, ebp
je 0x504688
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x168]
mov dword [esp + 8], eax
call fcn.00411510
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0x168]
call fcn.004683c4
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x5057a1
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 1
mov dword [esp + 0x1bc], edx
shl edx, 1
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 1
add esp, 0x1b0
ret
xchg ebp, eax
cmp al, 8
xchg ebp, eax
jne 0x504834
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0x150]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0x150], 3
mov ecx, dword [esp + 0x1b4]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x504792
mov dword [esp + 0xa4], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x50477e
call fcn.00467c50
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov dword [ebx + 4], eax
lea ebx, [eax + eax*2]
mov ebp, dword [0x860560]
lea edi, [esi + ebx*8 - 0x18]
test ebp, ebp
je 0x5047df
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x150]
mov dword [esp + 8], eax
call fcn.00411510
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0x150]
call fcn.004683c4
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x505798
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 2
mov dword [esp + 0x1bc], edx
shl edx, 1
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 1
add esp, 0x1b0
ret
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0x138]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0x138], 3
mov ecx, dword [esp + 0x1b4]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x5048de
mov dword [esp + 0xa4], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x5048ca
call fcn.00467c50
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov dword [ebx + 4], eax
lea ebx, [eax + eax*2]
mov ebp, dword [0x860560]
lea edi, [esi + ebx*8 - 0x18]
test ebp, ebp
je 0x50492b
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x138]
mov dword [esp + 8], eax
call fcn.00411510
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0x138]
call fcn.004683c4
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x50578f
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 4
mov dword [esp + 0x1bc], edx
shl edx, 1
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 1
add esp, 0x1b0
ret
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
ja 0x505086
xchg ebp, eax
cmp al, 0xb
xchg ebp, eax
jbe 0x504de3
xchg ebp, eax
cmp al, 0xc
xchg ebp, eax
je 0x504c97
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
mov ebp, dword [ebx + 0x30]
mov dword [esp + 0x84], ebp
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x80], edx
lea edi, [esp + 0xd8]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0xd8], 2
mov ecx, dword [esp + 0x1b4]
mov esi, dword [ecx]
mov edi, dword [esi + 8]
mov eax, dword [esi + 4]
inc eax
mov ebx, dword [esi]
cmp edi, eax
jae 0x504a5e
mov dword [esp + 0xa4], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x504a41
call fcn.00467c50
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov ebp, dword [esp + 0x84]
mov esi, ebx
mov eax, edx
mov ebx, ecx
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x80]
mov dword [esi + 4], eax
lea eax, [eax + eax*2]
mov esi, dword [0x860560]
lea edi, [ebx + eax*8 - 0x18]
test esi, esi
je 0x504ab2
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea ecx, [esp + 0xd8]
mov dword [esp + 8], ecx
call fcn.00411510
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0xd8]
call fcn.004683c4
mov ecx, dword [esp + 0x1b4]
mov ebx, dword [ecx]
mov eax, dword [ebx + 4]
cmp edx, eax
jae 0x505786
shl ebp, 1
mov ebx, dword [ebx]
lea esi, [edx + edx*2]
lea ebx, [ebx + esi*8 + 8]
mov dword [ebx], ebp
mov ebx, dword [ecx]
inc ebp
cmp dword [ebx + 0x10], ebp
jge 0x504aea
mov dword [ebx + 0x10], ebp
mov ebx, dword [esp + 0x1b8]
mov ebp, dword [ebx + 8]
test ebp, ebp
jbe 0x50577d
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00504140
mov eax, dword [esp + 0x1b4]
mov ecx, dword [eax]
nop
mov edx, dword [esp + 0x1b8]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x84], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x7c], ebx
nop
mov ebp, dword [esp + 8]
mov dword [esp + 0x78], ebp
movzx esi, byte [esp + 0x14]
xchg esi, eax
mov byte [esp + 0x38], al
xchg esi, eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x74], ecx
lea edi, [esp + 0xc0]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0xc0], 2
mov eax, dword [esp + 0x1b4]
mov ecx, dword [eax]
mov edi, dword [ecx + 8]
mov ebx, dword [ecx + 4]
inc ebx
mov esi, dword [ecx]
cmp edi, ebx
jae 0x504be6
mov dword [esp + 0xa4], ecx
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x504bcc
call fcn.00467c50
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, dword [esp + 0x1b4]
mov ebp, dword [esp + 0x78]
mov esi, ecx
mov ecx, ebx
mov ebx, edx
mov edx, dword [esp + 0x84]
mov dword [ecx + 4], ebx
lea ecx, [ebx + ebx*2]
mov ebx, dword [0x860560]
lea edi, [esi + ecx*8 - 0x18]
test ebx, ebx
je 0x504c37
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xc0]
mov dword [esp + 8], eax
call fcn.00411510
mov eax, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0xc0]
call fcn.004683c4
mov ecx, dword [eax]
mov ebx, dword [ecx + 4]
mov esi, ebp
mov ebp, dword [esp + 0x74]
cmp ebp, ebx
jae 0x505774
shl edx, 1
or edx, 1
mov ebx, dword [ecx]
lea edi, [ebp + ebp*2]
lea ebx, [ebx + edi*8 + 8]
mov dword [ebx], edx
mov ebx, dword [eax]
inc edx
cmp dword [ebx + 0x10], edx
jge 0x504c72
mov dword [ebx + 0x10], edx
mov edx, dword [esp + 0x80]
test edx, edx
je 0x504c81
test esi, esi
jne 0x504c8c
xor ebx, ebx
xor ecx, ecx
xor edx, edx
jmp 0x5056ea
mov ebx, edx
shl edx, 1
mov edi, dword [eax]
jmp 0x5056a7
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0xf0]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0xf0], 3
mov ecx, dword [esp + 0x1b4]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x504d41
mov dword [esp + 0xa4], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x504d2d
call fcn.00467c50
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov dword [ebx + 4], eax
lea ebx, [eax + eax*2]
mov ebp, dword [0x860560]
lea edi, [esi + ebx*8 - 0x18]
test ebp, ebp
je 0x504d8e
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xf0]
mov dword [esp + 8], eax
call fcn.00411510
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0xf0]
call fcn.004683c4
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x505698
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 0x20
mov dword [esp + 0x1bc], edx
shl edx, 1
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 1
add esp, 0x1b0
ret
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
jne 0x504f3a
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0x120]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0x120], 3
mov ecx, dword [esp + 0x1b4]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x504e98
mov dword [esp + 0xa4], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x504e84
call fcn.00467c50
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov dword [ebx + 4], eax
lea ebx, [eax + eax*2]
mov ebp, dword [0x860560]
lea edi, [esi + ebx*8 - 0x18]
test ebp, ebp
je 0x504ee5
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x120]
mov dword [esp + 8], eax
call fcn.00411510
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0x120]
call fcn.004683c4
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x50568f
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 8
mov dword [esp + 0x1bc], edx
shl edx, 1
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 1
add esp, 0x1b0
ret
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0x108]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0x108], 3
mov ecx, dword [esp + 0x1b4]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x504fe4
mov dword [esp + 0xa4], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x504fd0
call fcn.00467c50
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov dword [ebx + 4], eax
lea ebx, [eax + eax*2]
mov ebp, dword [0x860560]
lea edi, [esi + ebx*8 - 0x18]
test ebp, ebp
je 0x505031
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x108]
mov dword [esp + 8], eax
call fcn.00411510
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0x108]
call fcn.004683c4
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x505686
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 0x10
mov dword [esp + 0x1bc], edx
shl edx, 1
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 1
add esp, 0x1b0
ret
xchg ebp, eax
cmp al, 0xf
xchg ebp, eax
jbe 0x5052b8
xchg ebp, eax
cmp al, 0x10
xchg ebp, eax
je 0x50521a
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x5051ec
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x5050ce
mov dword [esp + 0x84], ecx
mov eax, dword [ebx + 4]
mov dword [esp + 0x9c], eax
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x50553a
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
nop
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.00467eea
mov byte [esp + 0xa8], 6
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
inc ebp
mov eax, dword [ecx]
cmp ebx, ebp
jae 0x505173
mov dword [esp + 0xa4], ecx
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x623760]
mov dword [esp + 0x10], eax
call fcn.0044dbe0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov eax, dword [0x860560]
test eax, eax
je 0x505164
call fcn.00467c50
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebp, edx
mov eax, ecx
mov ecx, ebx
mov edx, dword [esp + 0x84]
mov dword [ecx + 4], ebp
mov ecx, dword [0x860560]
lea ebx, [ebp + ebp*2]
lea edi, [eax + ebx*8 - 0x18]
test ecx, ecx
je 0x5051ba
mov dword [esp + 0xa0], edi
lea eax, [0x623760]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa8]
mov dword [esp + 8], eax
call fcn.00411510
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0xa0]
lea esi, [esp + 0xa8]
call fcn.004683c4
mov dword [esp + 0x1bc], edx
shl edx, 1
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], 1
add esp, 0x1b0
ret
xchg ebp, eax
cmp al, 0x13
xchg ebp, eax
jne 0x5054fe
mov eax, dword [ebx + 8]
mov dword [esp + 0x84], eax
mov ecx, dword [ebx + 4]
mov dword [esp + 0x98], ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x5054d1
mov edx, dword [ebx + 8]
test edx, edx
jbe 0x50541d
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1b4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00504140
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1b8]
movzx ebp, word [ebp + 2]
mov esi, dword [esp + 0x1b4]
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.00505b70
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], bl
add esp, 0x1b0
ret
xchg ebp, eax
cmp al, 0xe
xchg ebp, eax
jne 0x505361
mov edx, dword [ebx + 8]
test edx, edx
jbe 0x505414
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1b4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00504140
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1b8]
movzx ebp, word [ebp + 2]
mov esi, dword [esp + 0x1b4]
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.00505ec0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], edx
mov byte [esp + 0x1c8], bl
add esp, 0x1b0
ret
mov edx, dword [ebx + 8]
test edx, edx
jbe 0x50540b
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1b4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00504140
mov eax, dword [esp + 0x1b8]
movzx eax, word [eax + 2]
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
movzx ebp, byte [esp + 0x14]
xchg ebp, eax
mov byte [esp + 0x37], al
xchg ebp, eax
nop
mov esi, dword [esp + 0x1b4]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
xchg ebp, eax
mov byte [esp + 0x10], al
xchg ebp, eax
test ax, 0x20
setne al
mov byte [esp + 0x14], al
call fcn.00505d20
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], ecx
movzx eax, byte [esp + 0x37]
mov byte [esp + 0x1c8], al
add esp, 0x1b0
ret
xor eax, eax
mov ecx, eax
call fcn.00467cb0
xor eax, eax
mov ecx, eax
call fcn.00467cb0
xor eax, eax
mov ecx, eax
call fcn.00467cb0
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x50], ebp
xchg edi, eax
mov byte [esp + 0x39], al
xchg edi, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x80], edx
mov eax, dword [ecx + edx*4]
mov ebx, dword [esp + 0x1b4]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00504140
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1b4]
mov dword [esp], ebp
mov esi, dword [esp + 0x64]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0xc], esi
movzx esi, byte [esp + 0x39]
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.00505960
mov eax, dword [esp + 0x80]
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 + 0x84]
mov ecx, dword [esp + 0x98]
cmp edx, eax
jl 0x505426
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x1c0], ebp
mov dword [esp + 0x1c4], ebx
xchg edi, eax
mov byte [esp + 0x1c8], al
xchg edi, eax
add esp, 0x1b0
ret
lea eax, [0x60d940]
mov dword [esp], eax
lea eax, [0x689c08]
mov dword [esp + 4], eax
call fcn.00438060
mov ebp, dword [esp + 0x4c]
inc ebp
mov esi, eax
mov edi, ecx
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x84]
mov eax, edx
mov edx, ebp
mov ebp, eax
mov eax, dword [esp + 0x9c]
cmp edx, ecx
jge 0x505607
mov dword [esp + 0x4c], edx
mov edi, dword [eax + edx*4]
test edx, edx
jne 0x50557d
mov eax, dword [esp + 0x1b4]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00504140
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
mov edx, ebx
mov ebx, ebp
jmp 0x505516
xchg ebp, eax
mov byte [esp + 0x3a], al
xchg ebp, eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x68], ebx
mov eax, dword [esp + 0x1b4]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00504140
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x14]
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x5055bb
mov ebp, dword [esp + 8]
test ebp, ebp
jne 0x5055c8
xor ecx, ecx
xor ebx, ebx
xor eax, eax
xor edx, edx
jmp 0x505516
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], ecx
mov edi, dword [esp + 0x1b4]
mov esi, dword [edi]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x90]
jmp 0x505643
movzx ebp, byte [esp + 0x3a]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x505516
xor edx, edx
jmp 0x505516
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x1c0], esi
mov dword [esp + 0x1c4], edi
xchg ebp, eax
mov byte [esp + 0x1c8], al
xchg ebp, eax
add esp, 0x1b0
ret
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x1b4]
mov edi, dword [esp + 0x40]
test edi, edi
je 0x5055f1
mov eax, dword [esi + 4]
shr edi, 1
cmp eax, edi
jbe 0x50567d
mov eax, dword [esi]
lea edi, [edi + edi*2]
lea ecx, [eax + edi*8]
mov ebx, dword [esp + 0x40]
test ebx, 1
jne 0x505672
lea ebx, [eax + edi*8 + 4]
mov edi, dword [ebx]
mov dword [ebx], ebp
jmp 0x50562c
lea ebx, [eax + edi*8 + 8]
mov edi, dword [ecx + 8]
mov dword [ebx], ebp
jmp 0x50562c
mov ecx, eax
mov eax, edi
call fcn.00467cc0
mov eax, edx
mov ecx, ebx
call fcn.00467cc0
mov eax, edx
mov ecx, ebx
call fcn.00467cc0
mov eax, edx
mov ecx, ebx
call fcn.00467cc0
mov edx, ebp
mov ebp, dword [esp + 0x74]
test edx, edx
je 0x5056e1
mov dword [esp + 0x44], edx
mov ecx, dword [edi + 4]
shr edx, 1
cmp ecx, edx
jbe 0x50576d
mov ecx, dword [edi]
lea edx, [edx + edx*2]
mov ebp, dword [esp + 0x44]
test ebp, 1
jne 0x5056d7
lea edx, [ecx + edx*8 + 4]
mov ebp, dword [edx]
mov dword [edx], esi
jmp 0x5056a1
lea edx, [ecx + edx*8 + 8]
mov ebp, dword [edx]
mov dword [edx], esi
jmp 0x5056a1
mov ecx, dword [esp + 0x7c]
movzx edx, byte [esp + 0x38]
test ebx, ebx
je 0x5056fa
test ebp, ebp
je 0x5056fa
mov byte [esp + 0x38], dl
mov esi, dword [eax]
jmp 0x50572a
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov byte [esp + 0x1c8], dl
add esp, 0x1b0
ret
movzx edx, byte [esp + 0x38]
mov ecx, edi
test ecx, ecx
je 0x50575e
mov edi, dword [esi + 4]
mov eax, ecx
shr eax, 1
cmp edi, eax
jbe 0x505766
mov edi, dword [esi]
lea eax, [eax + eax*2]
lea edx, [edi + eax*8]
test ecx, 1
jne 0x505753
lea edx, [edi + eax*8 + 4]
mov edi, dword [edx]
mov dword [edx], ebp
jmp 0x505723
lea eax, [edi + eax*8 + 8]
mov edi, dword [edx + 8]
mov dword [eax], ebp
jmp 0x505723
shl ebp, 1
mov eax, ebp
mov ecx, ebx
jmp 0x505700
mov ecx, edi
call fcn.00467cc0
mov eax, edx
call fcn.00467cc0
mov eax, ebp
mov ecx, ebx
call fcn.00467cc0
xor eax, eax
mov ecx, eax
call fcn.00467cb0
mov ecx, eax
mov eax, edx
call fcn.00467cc0
mov eax, edx
mov ecx, ebx
call fcn.00467cc0
mov eax, edx
mov ecx, ebx
call fcn.00467cc0
mov eax, edx
mov ecx, ebx
call fcn.00467cc0
mov ebx, dword [esp + 0x1b8]
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x1b4]
mov eax, dword [esp + 0x80]
mov edi, esi
mov dword [esp + 0x60], edx
mov esi, dword [esp + 0x1b4]
mov edx, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x84]
cmp eax, ebp
jge 0x5058bd
xchg edi, eax
mov byte [esp + 0x3b], al
xchg edi, eax
mov dword [esp + 0x58], edx
mov edi, dword [ebx + 0x1c]
lea edx, [eax + 1]
cmp edi, edx
jb 0x505948
cmp eax, edx
ja 0x505941
mov dword [esp + 0x70], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebx + 0x14]
sub edi, eax
mov edx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
shl eax, 2
sar edi, 0x1f
and eax, edi
add eax, ecx
movzx ecx, word [ebx + 2]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov dword [esp + 0xc], edx
mov word [esp + 0x10], cx
call fcn.00505fe0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov ebp, dword [esp + 0x70]
test ebp, ebp
jne 0x50586f
mov ebp, eax
mov esi, ebx
jmp 0x5057aa
mov ebp, dword [esp + 0x6c]
test ebp, ebp
je 0x50587b
test eax, eax
jne 0x505888
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor esi, esi
jmp 0x5057aa
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], edx
mov esi, dword [esp + 0x1b4]
mov edi, dword [esi]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
jmp 0x5058fd
movzx esi, byte [esp + 0x3b]
and esi, ebx
jmp 0x5057aa
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1c0], edx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c4], eax
xchg edi, eax
mov byte [esp + 0x1c8], al
xchg edi, eax
add esp, 0x1b0
ret
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x1b4]
mov esi, dword [esp + 0x48]
test esi, esi
je 0x5058b1
mov ecx, dword [edi + 4]
shr esi, 1
cmp ecx, esi
jbe 0x50593a
mov ecx, dword [edi]
lea esi, [esi + esi*2]
lea edx, [ecx + esi*8]
mov ebp, dword [esp + 0x48]
test ebp, 1
jne 0x50592e
lea ebp, [ecx + esi*8 + 4]
mov esi, dword [ebp]
mov dword [ebp], eax
jmp 0x5058e6
lea ebp, [ecx + esi*8 + 8]
mov esi, dword [edx + 8]
mov dword [ebp], eax
jmp 0x5058e6
mov eax, esi
call fcn.00467cc0
mov ecx, edx
call fcn.00467d10
mov ecx, edx
mov edx, edi
call fcn.00467cf0
nop
call fcn.00466840
jmp fcn.00504140