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

Disassembly:
mov ecx, dword [0xf33f68]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x504ab4
sub esp, 0xd0
mov ebx, dword [esp + 0xe0]
mov ebp, ebx
and ebx, 0x1f
nop
cmp ebx, 0xa
jbe 0x504515
cmp ebx, 0xf
jbe 0x504206
cmp ebx, 0x11
ja 0x504166
cmp ebx, 0x10
je 0x504049
nop
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.004b96c0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
xor ecx, ecx
jmp 0x504aab
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 8]
cmp edx, ecx
jb 0x504a47
cmp eax, ecx
ja 0x504a42
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x28]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xd4]
mov ebx, dword [edx + 0x14]
lea ebp, [ebx + 8]
mov dword [edx + 0x14], ebp
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov eax, dword [edx + 0x10]
lea ecx, [ebx + 0x10]
cmp eax, ecx
jb 0x504a3b
cmp ecx, ebp
jb 0x504a34
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 0x40], xmm0
mov ecx, dword [edx]
mov esi, dword [edx + 4]
mov ecx, dword [ecx + 0x28]
mov edi, dword [edx + 8]
mov dword [esp], esi
sub eax, ebx
add eax, 0xfffffff8
mov ebx, eax
neg eax
sar eax, 0x1f
and ebp, eax
lea eax, [edi + ebp]
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebx
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
movsd xmm0, qword [esp + 0x60]
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 0x14], xmm0
call fcn.004ba6a0
jmp 0x504839
cmp ebx, 0x17
jne 0x504181
nop
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 4]
mov dword [esp + 0x48], ecx
xor edx, edx
jmp 0x504a2b
cmp ebx, 0x19
jne 0x504839
test ebp, 0x200
jne 0x5041a1
lea eax, [0xc80e44]
mov ecx, dword [esp + 0xd8]
jmp 0x5041ce
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.004bb070
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x90], ecx
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.004b9f90
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
xor ecx, ecx
jmp 0x5048a8
cmp ebx, 0xd
ja 0x504353
cmp ebx, 0xb
jne 0x5042aa
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 8]
cmp edx, ecx
jb 0x504898
cmp eax, ecx
ja 0x504893
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x28]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.004ba920
jmp 0x504839
cmp ebx, 0xd
jne 0x504839
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 4]
cmp edx, ecx
jb 0x50488e
cmp eax, ecx
ja 0x504889
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x24]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov dword [esp + 0x80], eax
movss xmm0, dword [esp + 0x80]
cvtss2sd xmm0, xmm0
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd qword [esp + 0xc], xmm0
call fcn.004ba770
jmp 0x504839
cmp ebx, 0xe
jne 0x5043fa
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 8]
cmp edx, ecx
jb 0x504884
cmp eax, ecx
ja 0x50487f
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x28]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
movsd xmm0, qword [esp + 0x78]
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd qword [esp + 0xc], xmm0
call fcn.004ba770
jmp 0x504839
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 4]
cmp edx, ecx
jb 0x50487a
cmp eax, ecx
ja 0x504875
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x24]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
mov edx, dword [ecx + 0x14]
lea ebx, [edx + 4]
mov dword [ecx + 0x14], ebx
mov dword [esp + 0x74], eax
mov eax, dword [ecx + 0x10]
lea ebp, [edx + 8]
cmp eax, ebp
jb 0x50486c
cmp ebp, ebx
jb 0x504863
movss xmm0, dword [esp + 0x74]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x88], xmm0
mov ebp, dword [ecx]
mov esi, dword [ecx + 4]
mov ebp, dword [ebp + 0x24]
mov edi, dword [ecx + 8]
mov dword [esp], esi
sub eax, edx
add eax, 0xfffffffc
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
lea eax, [edi + ebx]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edx
call ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov dword [esp + 0x70], eax
movss xmm0, dword [esp + 0x70]
cvtss2sd xmm0, xmm0
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd xmm1, qword [esp + 0x88]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 0x14], xmm0
call fcn.004ba6a0
jmp 0x504839
cmp ebx, 5
ja 0x504669
cmp ebx, 3
ja 0x5045d3
cmp ebx, 1
jne 0x504578
mov edx, dword [esp + 0xd4]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x14]
cmp ecx, eax
jbe 0x50485e
mov ecx, dword [edx + 8]
movzx ecx, byte [ecx + eax]
inc eax
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
test cl, cl
setne al
mov byte [esp + 0xc], al
call fcn.004ba340
jmp 0x504839
cmp ebx, 3
jne 0x504839
mov edx, dword [esp + 0xd4]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x14]
nop
cmp ecx, eax
jbe 0x504859
mov ecx, dword [edx + 8]
add ecx, eax
movsx ecx, byte [ecx]
mov ebx, ecx
sar ecx, 0x1f
inc eax
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.004ba830
jmp 0x504839
cmp ebx, 4
jne 0x504621
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call fcn.00503e40
movsx eax, word [esp + 4]
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
call fcn.004ba830
jmp 0x504839
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call fcn.00503ec0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
call fcn.004ba830
jmp 0x504839
cmp ebx, 8
ja 0x504718
cmp ebx, 6
je 0x5046cf
cmp ebx, 8
jne 0x504839
mov edx, dword [esp + 0xd4]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x14]
cmp ecx, eax
jbe 0x504854
mov ecx, dword [edx + 8]
movzx ecx, byte [ecx + eax]
inc eax
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
call fcn.004ba920
jmp 0x504839
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call fcn.00503f40
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.004ba830
jmp 0x504839
cmp ebx, 9
jne 0x5047b4
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 2]
cmp edx, ecx
jb 0x50484f
cmp eax, ecx
ja 0x50484a
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x20]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov dword [esp + 0xc], ebp
call ecx
movzx eax, word [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 2
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.004ba920
jmp 0x504839
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 4]
cmp edx, ecx
jb 0x504845
cmp eax, ecx
ja 0x504840
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x24]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.004ba920
add esp, 0xd0
ret
call fcn.0046c8b0
call fcn.0046c890
call fcn.0046c8b0
call fcn.0046c890
call fcn.0046c850
call fcn.0046c850
call fcn.0046c850
mov eax, ebx
mov ecx, ebp
call fcn.0046c8b0
mov ecx, ebp
mov edx, eax
call fcn.0046c890
call fcn.0046c8b0
call fcn.0046c890
call fcn.0046c8b0
call fcn.0046c890
call fcn.0046c8b0
call fcn.0046c890
call fcn.0046c8b0
call fcn.0046c890
mov edx, dword [esp + 0x58]
lea ecx, [edx + 1]
mov eax, dword [esp + 0x50]
cmp ecx, eax
jge 0x504839
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.004b8e50
mov eax, dword [esp + 0x18]
mov ecx, eax
and eax, 0x160
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
cmp eax, 0x100
je 0x50496a
mov dword [esp + 0x84], ecx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x90]
mov dword [esp], edx
mov ebx, dword [esp + 0x58]
mov dword [esp + 4], ebx
call ecx
lea edi, [esp + 0x94]
lea esi, [esp + 8]
call fcn.0046cf0e
cmp dword [esp + 0x98], 1
je 0x504944
mov eax, 1
jmp 0x504951
mov eax, dword [esp + 0x94]
cmp byte [eax], 0x5f
setne al
test al, al
je 0x504991
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xcc]
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.00503fd0
mov eax, dword [esp + 0xd4]
jmp 0x50489d
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
call fcn.00503a80
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x14]
add ecx, dword [esp + 0xc]
mov dword [eax + 0x14], ecx
jmp 0x50489d
mov dword [esp + 0x54], edx
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
call fcn.004b9320
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.00503fd0
mov eax, dword [esp + 0x54]
lea edx, [eax + 1]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0xe0]
cmp edx, ecx
jl 0x5049cc
jmp 0x504839
mov eax, ebp
call fcn.0046c8b0
mov edx, eax
call fcn.0046c890
call fcn.0046c8b0
call fcn.0046c890
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.004b9320
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.00503fd0
mov eax, dword [esp + 0x5c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x4c]
cmp ecx, eax
jl 0x504a4c
jmp 0x504839
call fcn.0046b3d0
jmp fcn.00503fd0