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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x508b25
sub esp, 0x58
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x70]
xor ecx, ecx
jmp 0x50854b
mov esi, dword [esp + 0x68]
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0x6c]
mov ebx, eax
mov eax, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x40], esi
cmp ebx, eax
jle 0x508a70
jbe 0x508b1d
mov dword [esp + 0x3c], eax
movzx edx, byte [edx + eax]
cmp dl, 0x80
jae 0x5088d6
mov byte [esp + 0x21], dl
movzx ebx, dl
lea edx, [0x7e7e60]
movzx ebx, byte [edx + ebx]
test bl, bl
je 0x50858e
lea ebx, [eax + 1]
mov eax, ecx
mov ecx, ebx
mov ebx, esi
jmp 0x508535
cmp ecx, eax
jge 0x508622
ja 0x508b12
sub eax, ecx
mov dword [esp + 0x38], eax
lea edx, [esi + eax]
mov dword [esp + 0x34], edx
neg eax
sar eax, 0x1f
and ecx, eax
mov eax, dword [esp + 0x68]
add ecx, eax
cmp edi, edx
jae 0x5085ec
mov dword [esp + 0x54], ecx
lea eax, [0x607140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x40], edi
lea eax, [ebp + esi]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
call fcn.0045f270
mov eax, dword [esp + 0x3c]
lea edx, [0x7e7e60]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x40], esi
movzx ebx, byte [esp + 0x21]
cmp bl, 0xa
ja 0x508731
cmp bl, 8
jne 0x508687
lea ebx, [esi + 2]
cmp edi, ebx
jae 0x50867b
lea eax, [0x607140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea ebx, [eax + 2]
mov eax, dword [esp + 0x3c]
lea edx, [0x7e7e60]
mov esi, dword [esp + 0x40]
mov word [ebp + esi], 0x625c
jmp 0x5088cc
cmp bl, 9
jne 0x5086da
lea ebx, [esi + 2]
cmp edi, ebx
jae 0x5086ce
lea eax, [0x607140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea ebx, [eax + 2]
mov eax, dword [esp + 0x3c]
lea edx, [0x7e7e60]
mov esi, dword [esp + 0x40]
mov word [ebp + esi], 0x745c
jmp 0x5088cc
cmp bl, 0xa
jne 0x508845
lea ebx, [esi + 2]
cmp edi, ebx
jae 0x508725
lea eax, [0x607140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea ebx, [eax + 2]
mov eax, dword [esp + 0x3c]
lea edx, [0x7e7e60]
mov esi, dword [esp + 0x40]
mov word [ebp + esi], 0x6e5c
jmp 0x5088cc
cmp bl, 0xd
ja 0x5087e4
cmp bl, 0xc
jne 0x50878d
lea ebx, [esi + 2]
cmp edi, ebx
jae 0x508781
lea eax, [0x607140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea ebx, [eax + 2]
mov eax, dword [esp + 0x3c]
lea edx, [0x7e7e60]
mov esi, dword [esp + 0x40]
mov word [ebp + esi], 0x665c
jmp 0x5088cc
cmp bl, 0xd
jne 0x508845
lea ebx, [esi + 2]
cmp edi, ebx
jae 0x5087d8
lea eax, [0x607140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea ebx, [eax + 2]
mov eax, dword [esp + 0x3c]
lea edx, [0x7e7e60]
mov esi, dword [esp + 0x40]
mov word [ebp + esi], 0x725c
jmp 0x5088cc
cmp bl, 0x22
je 0x5087ee
cmp bl, 0x5c
jne 0x508845
lea edx, [esi + 2]
cmp edi, edx
jae 0x50882f
lea eax, [0x607140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea edx, [eax + 2]
mov eax, dword [esp + 0x3c]
movzx ebx, byte [esp + 0x21]
mov esi, dword [esp + 0x40]
mov byte [ebp + esi], 0x5c
mov byte [ebp + esi + 1], bl
mov ebx, edx
lea edx, [0x7e7e60]
jmp 0x5088cc
lea edx, [esi + 6]
mov ecx, ebx
shr bl, 4
movzx ebx, bl
lea esi, [0x6317d7]
movzx ebx, byte [esi + ebx]
and ecx, 0xf
movzx esi, byte [esi + ecx]
cmp edi, edx
jae 0x5088ae
mov byte [esp + 0x23], bl
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
lea eax, [0x607140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea edx, [eax + 6]
mov eax, dword [esp + 0x3c]
movzx ebx, byte [esp + 0x23]
movzx esi, byte [esp + 0x22]
mov ecx, esi
mov esi, dword [esp + 0x40]
mov dword [ebp + esi], 0x3030755c
mov byte [ebp + esi + 4], bl
mov byte [ebp + esi + 5], cl
mov ebx, edx
lea edx, [0x7e7e60]
lea ecx, [eax + 1]
mov eax, ecx
jmp 0x508535
mov dword [esp + 0x30], edi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x24], ecx
sub ebx, eax
mov edx, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
mov ebp, dword [esp + 0x68]
add ebx, ebp
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.00486cd0
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], 0xfffd
jne 0x508a4e
cmp eax, 1
jne 0x508a4e
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
cmp edx, ecx
jl 0x50893b
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x4c]
jmp 0x5089e7
ja 0x508b0b
sub ecx, edx
mov ebp, dword [esp + 0x40]
lea esi, [ebp + ecx]
mov dword [esp + 0x38], esi
mov edi, ecx
neg ecx
sar ecx, 0x1f
and edx, ecx
mov ecx, dword [esp + 0x68]
add edx, ecx
mov ecx, dword [esp + 0x30]
cmp ecx, esi
jb 0x508974
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
jmp 0x5089b8
mov dword [esp + 0x34], edi
mov dword [esp + 0x54], edx
lea eax, [0x607140]
mov dword [esp], eax
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], ebp
mov ecx, edi
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x50]
lea ebx, [eax + ebp]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], edi
call fcn.0045f270
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x50]
lea esi, [edx + 6]
cmp ebx, esi
jae 0x508a2c
mov dword [esp + 0x2c], esi
mov dword [esp + 0x40], edx
lea eax, [0x607140]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov dword [ebp + edx], 0x6666755c
mov word [ebp + edx + 4], 0x6466
add ecx, eax
lea edx, [0x7e7e60]
mov eax, ecx
mov edi, ebx
mov ebx, esi
jmp 0x508535
mov edx, dword [esp + 0x3c]
lea ecx, [eax + edx]
lea edx, [0x7e7e60]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x4c]
jmp 0x508535
cmp ebx, ecx
jle 0x508af2
jb 0x508b02
sub ebx, ecx
mov dword [esp + 0x3c], ebx
lea eax, [esi + ebx]
mov dword [esp + 0x38], eax
neg ebx
sar ebx, 0x1f
and ecx, ebx
add ecx, edx
cmp edi, eax
jae 0x508ac6
mov dword [esp + 0x54], ecx
lea ecx, [0x607140]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
call fcn.00447740
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x40], edi
lea eax, [ebp + esi]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
call fcn.0045f270
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
add esp, 0x58
ret
mov eax, ecx
mov ecx, ebx
call fcn.0045ea30
mov eax, edx
call fcn.0045ea30
mov edx, eax
mov eax, ecx
mov ecx, edx
call fcn.0045ea30
mov ecx, ebx
call fcn.0045e9d0
nop
call fcn.0045d540
jmp fcn.00508500