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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x1d8]
cmp eax, dword [ecx + 8]
jbe 0x5028f8
sub esp, 0x258
mov eax, 0
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], eax
mov byte [esp + 0x3b], 0
mov eax, dword [0x9062b0]
mov ecx, dword [0x9062b4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004c8fb0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp ecx, 4
je 0x502300
cmp ecx, 0x10
jne 0x5028ab
xor ecx, ecx
jmp 0x5028b5
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
lea edi, [esp + 0xc0]
xor eax, eax
call fcn.00461dec
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0x48], 0
lea edi, [esp + 0x64]
call fcn.00461e4b
mov dword [esp], 0x202
lea ecx, [esp + 0xc0]
mov dword [esp + 4], ecx
call fcn.00497420
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x50242e
lea eax, [0x55ec28]
mov dword [esp + 0x254], eax
mov byte [esp + 0x3b], 1
mov dword [esp], 2
mov dword [esp + 4], 3
mov dword [esp + 8], 6
call fcn.00492cc0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x50241d
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
lea edx, [0x502910]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
lea edx, [esp + 0x4c]
mov dword [esp + 0x250], edx
mov byte [esp + 0x3b], 3
mov edx, dword [esp + 0x264]
add edx, 0x14
mov dword [esp + 0xb8], edx
mov ebx, dword [esp + 0x260]
mov ebp, ebx
sar ebx, 8
mov byte [esp + 0x56], bl
xchg ebp, eax
mov byte [esp + 0x57], al
xchg ebp, eax
mov word [esp + 0x54], 2
xor ecx, ecx
jmp 0x502442
mov byte [esp + 0x3b], 0
call fcn.005116f0
add esp, 0x258
ret
add esp, 0x258
ret
movzx ebx, byte [esp + ecx + 0x25c]
mov byte [esp + ecx + 0x58], bl
inc ecx
cmp ecx, 4
jge 0x50244e
jb 0x502435
jmp 0x50289f
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
lea eax, [0x522ce0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00449820
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
cmp ecx, 2
jbe 0x502895
mov edx, dword [esp + 0x260]
mov ebx, edx
shr edx, 8
mov byte [eax + 2], dl
cmp ecx, 3
jbe 0x502889
mov byte [eax + 3], bl
cmp ecx, 0xc
jbe 0x50287f
mov dword [esp + 0xb4], eax
mov byte [eax + 0xc], 0x50
mov ecx, dword [esp + 0x268]
mov dword [esp], ecx
mov ecx, dword [esp + 0x26c]
mov dword [esp + 4], ecx
call fcn.00510b00
mov eax, dword [esp + 8]
nop
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
test dl, dl
je 0x5024d9
or ecx, 2
movzx edx, byte [eax + 2]
test dl, dl
je 0x5024e4
or ecx, 4
movzx edx, byte [eax + 3]
test dl, dl
je 0x5024ef
or ecx, 8
movzx edx, byte [eax + 4]
test dl, dl
je 0x5024fa
or ecx, 0x10
movzx edx, byte [eax + 5]
test dl, dl
je 0x502505
or ecx, 0x20
mov edx, dword [esp + 0x44]
cmp edx, 0xd
jbe 0x502873
mov dword [esp + 0x9c], eax
mov ebx, dword [esp + 0xb4]
mov byte [ebx + 0xd], cl
lea edi, [esp + 0x78]
xor eax, eax
call fcn.00461e48
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x3c]
xor eax, eax
jmp 0x50255a
movzx esi, byte [ecx + eax]
xchg esi, ebx
mov byte [esp + eax + 0x78], bl
xchg esi, ebx
movzx esi, byte [esp + eax + 0x25c]
xchg esi, ebx
mov byte [esp + eax + 0x7c], bl
xchg esi, ebx
inc eax
cmp eax, 4
jge 0x502568
cmp eax, ebp
jb 0x50253d
jmp 0x50286c
mov word [esp + 0x80], 0x600
mov ecx, edx
shr edx, 8
mov byte [esp + 0x82], dl
mov byte [esp + 0x83], cl
xor eax, eax
jmp 0x502595
movzx edx, byte [eax + ebx]
mov byte [esp + eax + 0x84], dl
inc eax
cmp eax, 0x14
jge 0x5025a3
cmp eax, ecx
jb 0x502589
jmp 0x502867
cmp ecx, 0x11
jbe 0x50285d
movzx eax, byte [ebx + 0x10]
movzx ecx, byte [ebx + 0x11]
mov byte [esp + 0x94], al
mov byte [esp + 0x95], cl
nop
call fcn.0050b2e0
mov eax, dword [esp]
mov ecx, eax
mov eax, 0xfc00
mul ecx
lea eax, [edx + 0x400]
mov ecx, eax
shr eax, 8
mov edx, dword [esp + 0xb4]
mov byte [edx], al
mov byte [edx + 1], cl
mov byte [esp + 0x84], al
mov byte [esp + 0x85], cl
nop
call fcn.0050b2e0
mov eax, dword [esp]
mov ecx, eax
mov eax, 0x15a0
mul ecx
lea eax, [edx + 0xea60]
mov ecx, eax
shr eax, 8
mov edx, dword [esp + 0xb4]
mov byte [edx + 0xe], al
mov byte [edx + 0xf], cl
mov byte [esp + 0x92], al
mov byte [esp + 0x93], cl
call fcn.0050b2e0
mov eax, dword [esp]
mov ecx, eax
mov eax, 0xf50a93c7
mul ecx
lea eax, [edx + 1]
mov ecx, eax
shr eax, 0x18
mov edx, dword [esp + 0xb4]
mov byte [edx + 4], al
mov ebx, ecx
shr ecx, 0x10
mov byte [edx + 5], cl
mov ebp, ebx
shr ebx, 8
mov byte [edx + 6], bl
xchg ebp, eax
mov byte [edx + 7], al
xchg ebp, eax
mov byte [esp + 0x88], al
mov byte [esp + 0x89], cl
mov byte [esp + 0x8a], bl
xchg ebp, eax
mov byte [esp + 0x8b], al
xchg ebp, eax
mov eax, dword [esp + 0x9c]
movzx ecx, byte [eax + 4]
test cl, cl
je 0x5026f3
call fcn.0050b2e0
mov eax, dword [esp]
mov ecx, eax
mov eax, 0xf50a93c7
mul ecx
lea eax, [edx + 1]
mov ecx, eax
shr eax, 0x18
mov edx, dword [esp + 0xb4]
mov byte [edx + 8], al
mov ebx, ecx
shr ecx, 0x10
mov byte [edx + 9], cl
mov ebp, ebx
shr ebx, 8
mov byte [edx + 0xa], bl
xchg ebp, eax
mov byte [edx + 0xb], al
xchg ebp, eax
mov byte [esp + 0x8c], al
mov byte [esp + 0x8d], cl
mov byte [esp + 0x8e], bl
xchg ebp, eax
mov byte [esp + 0x8f], al
xchg ebp, eax
mov eax, dword [esp + 0x9c]
mov word [edx + 0x10], 0
mov ecx, 0x20
xor ebx, ebx
xor ebp, ebp
jmp 0x5027f6
test ecx, ecx
jle 0x50271b
cmp ebp, 0x20
jae 0x502839
movzx ecx, byte [esp + ebp + 0x78]
add ebx, ecx
mov eax, ebx
shr ebx, 0x10
add eax, ebx
not eax
mov ecx, eax
shr eax, 8
mov byte [edx + 0x10], al
mov byte [edx + 0x11], cl
mov dword [esp + 0xbc], edx
lea eax, [esp + 0xb8]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x48]
mov dword [esp + 0xac], eax
lea eax, [esp + 0x54]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x64]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], 0
mov ecx, dword [0x92b29c]
mov ebx, dword [esp + 0xb0]
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xa4]
xor eax, eax
mov dword [esp], ecx
mov dword [esp + 4], 9
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 0x10
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
call fcn.0045fc90
movzx eax, byte [0x92b261]
test al, al
jne 0x5025c2
jmp 0x502818
movzx esi, byte [esp + ebp + 0x79]
add ebx, esi
add ebp, 2
add ecx, 0xfffffffe
cmp ecx, 1
jle 0x502707
cmp ebp, 0x20
jae 0x502851
movzx esi, byte [esp + ebp + 0x78]
shl esi, 8
add ebx, esi
lea esi, [ebp + 1]
cmp esi, 0x20
jb 0x5027e9
jmp 0x502845
mov byte [esp + 0x3b], 1
mov edx, dword [esp + 0x250]
mov eax, dword [edx]
call eax
mov byte [esp + 0x3b], 0
call fcn.005116f0
add esp, 0x258
ret
mov eax, ebp
mov ecx, 0x20
call fcn.00461cf0
mov eax, esi
mov ecx, 0x20
call fcn.00461cf0
mov eax, ebp
mov ecx, 0x20
call fcn.00461cf0
mov eax, 0x11
call fcn.00461cf0
call fcn.00461cf0
mov ecx, ebp
call fcn.00461cf0
mov eax, 0xd
mov ecx, eax
call fcn.00461cf0
mov eax, 0xc
call fcn.00461cf0
mov eax, 3
mov ecx, eax
call fcn.00461cf0
mov eax, 2
call fcn.00461cf0
mov eax, ecx
mov ecx, 4
call fcn.00461cf0
xor ecx, ecx
xor eax, eax
jmp 0x502300
inc ecx
cmp ecx, 0xa
jge 0x5028c6
jae 0x5028df
movzx edx, byte [eax + ecx]
test dl, dl
je 0x5028b4
jmp 0x5028ab
cmp byte [eax + 0xa], 0xff
jne 0x5028ab
cmp byte [eax + 0xb], 0xff
jne 0x5028ab
add eax, 0xc
mov ecx, 4
jmp 0x502300
mov eax, ecx
mov ecx, 0xa
call fcn.00461cf0
nop
call fcn.004345c0
add esp, 0x258
ret
call fcn.00460860
jmp fcn.00502290