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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xec]
cmp eax, dword [ecx + 8]
jbe 0x503d06
sub esp, 0x16c
mov ecx, dword [esp + 0x178]
test ecx, ecx
jle 0x503ccf
mov edx, dword [esp + 0x184]
test edx, edx
jle 0x503cba
lea eax, [ecx - 1]
cmp eax, ecx
jae 0x503d00
mov ebx, dword [esp + 0x170]
lea ebp, [ebx + ecx*4 - 4]
lea eax, [edx - 1]
cmp eax, edx
jae 0x503cf9
mov esi, dword [esp + 0x17c]
lea edi, [esi + edx*4 - 4]
cmp edi, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x503c4e
xor eax, eax
xor ecx, ecx
xor ebx, ebx
mov ebp, dword [esp + 0x198]
cmp ebp, 1
jne 0x503c42
mov edi, dword [esp + 0x194]
cmp dword [edi], 1
je 0x503c22
mov edi, dword [esp + 0x18c]
test edi, edi
je 0x503bce
cmp edi, 1
jne 0x503bc2
mov edi, dword [esp + 0x188]
cmp dword [edi], 1
jne 0x502fe2
test ebp, ebp
jne 0x503b45
test ebp, ebp
je 0x502fee
cmp ebp, ebx
jg 0x503ab2
nop
mov eax, dword [esp + 0x180]
cmp eax, ebx
jg 0x503a13
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x180]
cmp eax, ebx
jle 0x503a0c
mov dword [esp + 0x48], eax
mov dword [esp + 0x168], ecx
cmp ecx, esi
je 0x503033
mov dword [esp], ecx
mov dword [esp + 4], esi
shl ebx, 2
mov dword [esp + 8], ebx
call fcn.004516d0
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
mov ecx, dword [esp + 0x180]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x184]
mov dword [esp + 8], edx
mov ebx, dword [0x8a85b8]
mov ebp, dword [0x8a85b4]
mov esi, dword [0x8a85b0]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebx
call fcn.004fef10
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x5039f9
mov edx, dword [esp + 0x18c]
cmp edx, 1
jle 0x5039ed
mov ebx, dword [esp + 0x198]
test ebx, ebx
jg 0x5038ae
mov ebp, dword [esp + 0x188]
mov esi, dword [ebp + edx*4 - 4]
nop
nop
cmp esi, 0x10000
jb 0x5038a5
mov edi, esi
shr esi, 0x10
mov eax, 0x10
cmp esi, 0x100
jb 0x50389c
shr esi, 8
mov ecx, ebp
lea ebp, [eax + 8]
cmp esi, 0x100
jae 0x503ce1
mov eax, ebx
lea ebx, [0x879540]
movzx ebx, byte [ebx + esi]
lea ebx, [ebx + ebp - 0x20]
neg ebx
lea ebp, [ebx + 1]
cmp ebp, 0x20
sbb esi, esi
mov ecx, ebp
shl edi, cl
and edi, esi
add ebx, 0xffffffe1
neg ebx
mov dword [esp + 0x5c], ebx
xor ecx, ecx
xor ebp, ebp
xor esi, esi
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x58], ecx
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x54], ebp
mov esi, dword [esp + 0x168]
mov dword [esp + 0x164], esi
mov dword [esp + 0x140], eax
xor eax, eax
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x160], eax
xor eax, eax
mov dword [esp + 0xa4], eax
xor eax, eax
mov dword [esp + 0x15c], eax
xor eax, eax
mov dword [esp + 0xa0], eax
xor eax, eax
mov dword [esp + 0x168], eax
xor ecx, ecx
xor ebp, ebp
xor esi, esi
mov eax, dword [esp + 0x140]
jmp 0x5031d2
mov ebp, dword [esp + 0x74]
inc ebp
shl ebx, 1
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x164], ecx
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x198]
mov edx, dword [esp + 0x18c]
mov ecx, ebp
mov ebp, edi
mov edi, ebx
mov ebx, dword [esp + 0x5c]
cmp ecx, ebx
jge 0x50341c
mov dword [esp + 0x74], ecx
mov dword [esp + 0x60], edi
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov eax, dword [esp + 0x164]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
call fcn.00501040
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x60]
test ebx, 0x80000000
jne 0x50337d
mov ebp, dword [esp + 0x198]
test ebp, ebp
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x164]
mov dword [esp + 0x168], esi
mov esi, dword [esp + 0x58]
jne 0x50328c
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x120], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x120]
jmp 0x503180
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x158], ecx
mov ebx, dword [esp + 0x168]
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x160]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x194]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebp
mov esi, dword [esp + 0x19c]
mov dword [esp + 0x2c], esi
call fcn.005019d0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x15c]
mov dword [esp + 0x168], edi
mov edi, dword [esp + 0xa4]
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x98]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x158]
mov dword [esp + 0x160], edi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x15c], edx
mov ecx, esi
mov eax, ebp
mov edx, ebx
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x198]
mov esi, dword [esp + 0xa0]
jmp 0x503180
mov dword [esp + 0x94], eax
mov dword [esp + 0x148], ecx
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x164]
mov dword [esp], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x17c]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x180]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x184]
mov dword [esp + 0x20], esi
call fcn.00500040
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x198]
test ebp, ebp
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x148]
mov dword [esp + 0x168], ebx
mov ebx, dword [esp + 0x60]
jmp 0x503253
lea ebx, [edx - 2]
mov edi, dword [esp + 0x188]
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x174], eax
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x70], edx
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x6c], ebx
mov ecx, dword [esp + 0x110]
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x108]
mov ebx, dword [esp + 0x100]
jmp 0x5037cd
mov ebp, dword [esp + 0x78]
inc ebp
shl ebx, 1
mov dword [esp + 0x78], ebp
mov ebp, edi
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x164], eax
mov edi, ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xa0], ebx
mov ecx, dword [esp + 0x15c]
mov eax, dword [esp + 0x198]
mov edx, dword [esp + 0x18c]
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
cmp edx, 0x20
jge 0x503751
mov dword [esp + 0x60], edi
mov dword [esp + 0x154], ecx
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov eax, dword [esp + 0x164]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
call fcn.00501040
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x60]
test ebx, 0x80000000
jne 0x5036b2
mov ebp, dword [esp + 0x198]
test ebp, ebp
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x164]
mov dword [esp + 0x168], esi
mov esi, dword [esp + 0x58]
jne 0x5035c1
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x6c], eax
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x154]
mov dword [esp + 0x15c], ecx
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xa8]
jmp 0x503496
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x150], eax
mov ebx, dword [esp + 0x168]
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x160]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x194]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebp
mov esi, dword [esp + 0x19c]
mov dword [esp + 0x2c], esi
call fcn.005019d0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0xa0]
mov edi, dword [esp + 0x154]
mov dword [esp + 0x168], edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x150]
mov dword [esp + 0x160], edi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x15c], eax
mov dword [esp + 0x70], edx
mov edx, esi
mov ecx, ebp
mov eax, ebx
mov edi, dword [esp + 0xa0]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x198]
mov esi, dword [esp + 0xa4]
jmp 0x503496
mov dword [esp + 0x14c], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0x164]
mov dword [esp], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x17c]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x180]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x184]
mov dword [esp + 0x20], esi
call fcn.00500040
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x198]
test ebp, ebp
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x14c]
mov dword [esp + 0x168], ebx
mov ebx, dword [esp + 0x60]
jmp 0x50356c
dec ebx
mov edx, dword [esp + 0x188]
mov edi, dword [esp + 0x18c]
mov edx, edi
mov edi, dword [esp + 0x188]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x174], eax
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x178], ecx
mov dword [esp + 0xe8], edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x70], edi
mov dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x6c], ebx
mov ecx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf8]
mov edi, dword [esp + 0x188]
mov ebx, dword [esp + 0xe0]
test ebx, ebx
jl 0x50384f
cmp ebx, edx
jae 0x503cd8
mov dword [esp + 0x7c], ebx
mov edi, dword [edi + ebx*4]
mov dword [esp + 0xd8], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x58], eax
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x54], ecx
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xa0], ebx
mov ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xc0]
jmp 0x5034e3
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 8], eax
call fcn.004fe7c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
add esp, 0x16c
ret
mov ecx, ebp
mov ebp, eax
jmp 0x5030d8
mov edi, esi
xor eax, eax
jmp 0x5030c4
mov eax, dword [esp + 0x194]
mov ecx, dword [eax]
and ecx, 1
cmp ecx, 1
jne 0x503958
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x180]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x2c], eax
call fcn.005046e0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
add esp, 0x16c
ret
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x180]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x2c], eax
call fcn.00503d10
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], edx
add esp, 0x16c
ret
mov ebx, dword [esp + 0x198]
jmp 0x5030a1
mov edx, dword [esp + 0x18c]
mov ebx, dword [esp + 0x198]
jmp 0x5030a1
mov ebx, eax
jmp 0x503011
cmp eax, 1
jne 0x503a65
lea eax, [0x659340]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0043c2b0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x184]
mov ebp, dword [esp + 0x198]
mov esi, dword [esp + 0x17c]
mov edi, dword [esp + 0x188]
mov ebx, 1
mov eax, 1
jmp 0x502ffe
lea ecx, [0x659340]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea ecx, [eax + 4]
mov dword [esp + 0x50], ecx
mov dword [esp + 8], ecx
call fcn.0043c2b0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x184]
mov ebp, dword [esp + 0x198]
mov esi, dword [esp + 0x17c]
mov edi, dword [esp + 0x188]
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x180]
jmp 0x502ffe
cmp ebp, 1
jne 0x503aff
lea eax, [0x659340]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0043c2b0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x184]
mov ebp, dword [esp + 0x198]
mov esi, dword [esp + 0x17c]
mov edi, dword [esp + 0x188]
mov ebx, 1
jmp 0x502fee
lea eax, [0x659340]
mov dword [esp], eax
mov dword [esp + 4], ebp
lea ecx, [ebp + 4]
mov dword [esp + 0x4c], ecx
mov dword [esp + 8], ecx
call fcn.0043c2b0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x184]
mov ebp, dword [esp + 0x198]
mov esi, dword [esp + 0x17c]
mov edi, dword [esp + 0x188]
mov ebx, dword [esp + 0x4c]
jmp 0x502fee
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x180]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x194]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x2c], eax
call fcn.005019d0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], eax
add esp, 0x16c
ret
mov edi, dword [esp + 0x188]
jmp 0x502fe2
cmp ebx, 1
jl 0x503bf9
mov dword [ecx], 1
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], 1
mov dword [esp + 0x1a8], ebx
add esp, 0x16c
ret
lea eax, [0x659340]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0043c2b0
mov ecx, dword [esp + 0xc]
mov ebx, 1
jmp 0x503bd3
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], ebx
add esp, 0x16c
ret
mov edi, dword [esp + 0x194]
jmp 0x502fb6
test ecx, ecx
jle 0x503cb1
mov ebp, dword [esp + 0x190]
test ebp, ebp
jle 0x503ca6
lea eax, [ecx - 1]
cmp eax, ecx
jae 0x503cf4
lea edi, [ebx + ecx*4 - 4]
lea eax, [ebp - 1]
cmp eax, ebp
jae 0x503ced
mov eax, dword [esp + 0x188]
lea ebp, [eax + ebp*4 - 4]
cmp ebp, edi
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x502f90
mov eax, dword [esp + 0x174]
mov ecx, ebx
mov ebx, dword [esp + 0x178]
jmp 0x502f96
mov eax, dword [esp + 0x188]
xor ebp, ebp
jmp 0x503c87
mov ebp, dword [esp + 0x190]
jmp 0x503ca6
mov ebx, dword [esp + 0x170]
mov esi, dword [esp + 0x17c]
xor ebp, ebp
jmp 0x502f86
mov edx, dword [esp + 0x184]
jmp 0x503cba
mov eax, ebx
mov ecx, edx
call fcn.00450da0
mov eax, esi
mov ecx, 0x100
call fcn.00450db0
mov ecx, ebp
call fcn.00450da0
call fcn.00450da0
mov ecx, edx
call fcn.00450da0
call fcn.00450da0
nop
call fcn.0044f4e0
jmp fcn.00502f10