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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x5090d8
sub esp, 0x88
mov ecx, dword [esp + 0xb0]
cmp ecx, 6
jg 0x508d68
test ecx, ecx
jne 0x508c23
lea edi, [esp + 0x74]
lea esi, [esp + 0x98]
call fcn.0045f05e
nop
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
test ecx, 0x80000000
je 0x508bb2
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or eax, ecx
shl edx, 1
mov ecx, eax
shl eax, 1
shr edx, 0x1f
or edx, eax
mov eax, edx
add edx, 0xd7b17f80
shr ecx, 0x1f
add eax, 0xd7b17f80
adc ecx, 0xd
jmp 0x508bbd
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
add edx, 0x886e0900
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
adc ecx, 0xfffffff1
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], 0xa
call fcn.004ace10
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edx
add esp, 0x88
ret
cmp ecx, 6
jne 0x508d5c
mov edx, dword [esp + 0xac]
cmp dword [edx], 0x58494e55
jne 0x508fd0
cmp word [edx + 4], 0x534d
jne 0x508fd0
lea edi, [esp + 0x60]
lea esi, [esp + 0x98]
call fcn.0045f05e
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
test edx, 0x80000000
je 0x508c97
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
mov edx, ebx
shl ebx, 1
mov ebp, ecx
shl ecx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
add ebx, 0xd7b17f80
shr ebp, 0x1f
add ecx, 0xd7b17f80
adc ebp, 0xd
jmp 0x508ca1
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x6c]
mov edx, ecx
mov eax, ebx
mov ecx, 0x3b9aca00
mov ebx, edx
mul ecx
and ebx, 0x3fffffff
mov ecx, ebx
add ebx, eax
mov esi, ebx
add ebx, 0x3d1a0000
imul ebp, ebp, 0x3b9aca00
add edx, ebp
mov ebp, ecx
sar ecx, 0x1f
add ebp, eax
adc edx, ecx
add esi, 0x3d1a0000
adc edx, 0xa1b203eb
mov dword [esp + 4], edx
mov dword [esp], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf4240
call fcn.00459150
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 8], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], 0xa
call fcn.004ace10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ebx
add esp, 0x88
ret
mov edx, dword [esp + 0xac]
jmp 0x508fd0
cmp ecx, 8
jne 0x508e7e
mov edx, dword [esp + 0xac]
cmp dword [edx], 0x58494e55
jne 0x508fd0
cmp dword [edx + 4], 0x4f4e414e
jne 0x508fd0
lea edi, [esp + 0x38]
lea esi, [esp + 0x98]
call fcn.0045f05e
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
test edx, 0x80000000
je 0x508ddd
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
mov edx, ebx
shl ebx, 1
mov ebp, ecx
shl ecx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
add ebx, 0xd7b17f80
shr ebp, 0x1f
add ecx, 0xd7b17f80
adc ebp, 0xd
jmp 0x508de7
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov edx, ecx
mov eax, ebx
mov ecx, 0x3b9aca00
mov ebx, edx
mul ecx
and ebx, 0x3fffffff
mov ecx, ebx
add ebx, eax
mov esi, ebx
add ebx, 0x3d1a0000
mov edi, dword [esp + 0x8c]
mov dword [esp], edi
mov edi, dword [esp + 0x90]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x94]
mov dword [esp + 8], edi
imul ebp, ebp, 0x3b9aca00
add edx, ebp
mov ebp, ecx
sar ecx, 0x1f
add ebp, eax
adc edx, ecx
add esi, 0x3d1a0000
adc edx, 0xa1b203eb
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], 0xa
call fcn.004ace10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ebx
add esp, 0x88
ret
cmp ecx, 9
jne 0x508fc9
mov eax, dword [esp + 0xac]
mov dword [esp], eax
lea edx, [0x62f171]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004025c0
movzx eax, byte [esp + 0xc]
test al, al
je 0x508fc2
lea edi, [esp + 0x4c]
lea esi, [esp + 0x98]
call fcn.0045f05e
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
test edx, 0x80000000
je 0x508efd
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
mov edx, ebx
shl ebx, 1
mov ebp, ecx
shl ecx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
add ebx, 0xd7b17f80
shr ebp, 0x1f
add ecx, 0xd7b17f80
adc ebp, 0xd
jmp 0x508f07
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
mov edx, ecx
mov eax, ebx
mov ecx, 0x3b9aca00
mov ebx, edx
mul ecx
and ebx, 0x3fffffff
mov ecx, ebx
add ebx, eax
mov esi, ebx
add ebx, 0x3d1a0000
imul ebp, ebp, 0x3b9aca00
add edx, ebp
mov ebp, ecx
sar ecx, 0x1f
add ebp, eax
adc edx, ecx
add esi, 0x3d1a0000
adc edx, 0xa1b203eb
mov dword [esp + 4], edx
mov dword [esp], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3e8
call fcn.00459150
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 8], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], 0xa
call fcn.004ace10
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ebx
add esp, 0x88
ret
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x90]
lea ebx, [eax + 1]
mov ebp, dword [esp + 0x94]
cmp ebp, ebx
jb 0x508fee
mov esi, dword [esp + 0x8c]
jmp 0x50903b
lea ecx, [0x607140]
mov dword [esp], ecx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00447740
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0xb0]
mov esi, eax
mov ebp, edx
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0xac]
mov byte [esi + eax], 0x22
lea edi, [esp]
mov eax, esi
lea esi, [esp + 0x98]
call fcn.0045f05e
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x24], eax
call fcn.00478fc0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
lea ebx, [eax + 1]
cmp ecx, ebx
jae 0x5090b8
mov dword [esp + 0x34], eax
lea ebp, [0x607140]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.00447740
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x34]
mov byte [edx + eax], 0x22
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ecx
add esp, 0x88
ret
call fcn.0045d540
jmp fcn.00508b30