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

Disassembly:
movsd qword [esp + 0x40], xmm0
movzx eax, byte [esp + 0x4b]
test al, al
jns 0x501f33
mov eax, dword [esp + 0x44]
test eax, eax
je 0x502a3e
mov ecx, dword [esp + 0x40]
jmp 0x501f3f
test eax, eax
je 0x502a3e
lea ecx, [esp + 0x40]
inc word [ecx + eax*2 - 2]
lea esi, [esp + 0x38]
xor eax, eax
dec eax
mov dword [esi + 4], eax
mov dword [esi], eax
push 0x10
call 0x1a0f590
add esp, 4
mov edi, eax
xor ebx, ebx
mov ecx, eax
push ebx
push ebx
push ebx
call 0xfdea22f0
mov dword [esi], edi
mov byte [esi + 4], 0
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov edx, esi
push 0x53
push 0x1a2e6e2c
push 4
push 0x1a2e6e80
push 8
push 0x19cdfb55
call 0xfe91a430
add esp, 0x18
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0xb]
test al, al
jns 0x501fa8
mov eax, edx
mov edx, dword [edx]
mov eax, dword [eax + 4]
jmp 0x501fab
and eax, 0x7f
mov ecx, esi
push eax
push edx
push ebx
call 0xfe633980
movzx eax, byte [esp + 0x57]
test al, al
jns 0x501fc8
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
jmp 0x501fcf
and eax, 0x7f
lea edx, [esp + 0x4c]
mov ecx, esi
push eax
push edx
push 1
call 0xfe633980
movzx eax, byte [esp + 0x4b]
test al, al
jns 0x501fed
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x501ff4
and eax, 0x7f
lea edx, [esp + 0x40]
mov ecx, esi
push eax
push edx
push 2
call 0xfe633980
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
test eax, eax
je 0x502018
push dword [ebp + 0x14]
push 4
push eax
call 0xfe633900
add esp, 0xc
mov ecx, dword [ebp + 0x10]
push dword [ecx]
call 0x48ad460
lea ecx, [esp + 0x38]
call 0xfde5c550
cmp eax, 0x64
jne 0x50234b
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
test eax, eax
je 0x50232e
push 3
push eax
call 0xfdb7cf20
add esp, 8
mov ecx, eax
mov ebx, edx
or eax, edx
je 0x502136
mov eax, ecx
not eax
mov edx, ebx
xor edx, 0x7fffffff
or edx, eax
mov edx, 0xffffffff
mov dword [esp], 0x7fffffff
je 0x50213b
mov eax, ebx
sar eax, 0x1f
mov esi, ebx
xor esi, eax
xor ecx, eax
sub ecx, eax
sbb esi, eax
mov dword [esp], esi
mov eax, ecx
mov edx, 0xf4240
mul edx
mov dword [esp + 4], eax
imul edi, esi, 0xf4240
mov esi, edx
add esi, edi
mov dword [esp + 0xc], esi
neg eax
mov edx, 0
sbb edx, esi
xor esi, esi
dec esi
add esi, 1
mov edi, 0x7fffffff
adc edi, 0
test ebx, ebx
cmovns edx, dword [esp + 0xc]
cmovns eax, dword [esp + 4]
mov ebx, 0xffffffff
cmovns esi, ebx
mov ebx, 0x7fffffff
cmovns edi, ebx
mov ebx, 0x7bd05af6
cmp ebx, ecx
mov ecx, 0x863
sbb ecx, dword [esp]
cmovae esi, eax
cmovae edi, edx
mov edx, esi
add edx, 0x48864000
mov eax, edi
adc eax, 0x295e96
seto cl
mov ebx, eax
sar ebx, 0x1f
test cl, cl
cmovne edx, ebx
add ebx, 0x80000000
test cl, cl
cmove ebx, eax
xor eax, eax
dec eax
add eax, esi
mov ecx, 0x7fffffff
adc ecx, edi
add eax, 2
adc ecx, 0
cmp eax, 2
sbb ecx, 0
cmovb edx, esi
cmovb ebx, edi
jmp 0x502138
mov edx, ecx
mov dword [esp], ebx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
test eax, eax
je 0x50233c
push 2
push eax
call 0xfdb7cf20
add esp, 8
mov ecx, eax
mov edi, edx
or eax, edx
je 0x50224c
mov eax, ecx
not eax
mov edx, edi
xor edx, 0x7fffffff
or edx, eax
mov eax, 0xffffffff
mov dword [esp + 4], eax
mov ebx, 0x7fffffff
je 0x502252
mov eax, edi
sar eax, 0x1f
mov esi, edi
xor esi, eax
xor ecx, eax
sub ecx, eax
sbb esi, eax
mov dword [esp + 4], esi
mov eax, ecx
mov edx, 0xf4240
mul edx
mov dword [esp + 0x10], eax
imul ebx, esi, 0xf4240
mov esi, edx
add esi, ebx
mov dword [esp + 0x14], esi
mov edx, eax
neg edx
mov ebx, 0
sbb ebx, esi
xor esi, esi
dec esi
add esi, 1
mov eax, 0x7fffffff
adc eax, 0
test edi, edi
cmovns ebx, dword [esp + 0x14]
cmovns edx, dword [esp + 0x10]
mov edi, 0xffffffff
cmovns esi, edi
mov edi, 0x7fffffff
cmovns eax, edi
mov edi, 0x7bd05af6
cmp edi, ecx
mov ecx, 0x863
sbb ecx, dword [esp + 4]
cmovae esi, edx
cmovae eax, ebx
mov edi, esi
add edi, 0x48864000
mov ecx, eax
adc ecx, 0x295e96
seto dl
mov ebx, ecx
sar ebx, 0x1f
test dl, dl
cmovne edi, ebx
add ebx, 0x80000000
test dl, dl
cmove ebx, ecx
xor ecx, ecx
dec ecx
add ecx, esi
mov edx, 0x7fffffff
adc edx, eax
add ecx, 2
adc edx, 0
cmp ecx, 2
sbb edx, 0
cmovb edi, esi
mov dword [esp + 4], edi
cmovb ebx, eax
jmp 0x502252
mov dword [esp + 4], ecx
mov ebx, edi
lea esi, [esp + 0x38]
mov ecx, esi
push 1
lea eax, [esp + 0x30]
push eax
call 0xff3e1360
mov ecx, esi
push 0
lea esi, [esp + 0x24]
push esi
call 0xff3e1360
lea edi, [esp + 0x58]
mov ecx, edi
lea eax, [esp + 0x2c]
push eax
push esi
call 0x53e27b0
lea esi, [esp + 0x78]
mov ecx, esi
push edi
call 0x53e2820
mov dword [esp + 0x9c], ebx
mov eax, dword [esp + 4]
mov dword [esp + 0x98], eax
mov eax, dword [esp]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov edi, dword [ebp + 0x10]
mov ebx, dword [edi + 4]
cmp ebx, dword [edi + 8]
jae 0x5022e7
test ebx, ebx
je 0x502a41
mov ecx, ebx
push esi
call 0x53e2820
lea eax, [esp + 0x98]
movups xmm0, xmmword [eax]
movups xmmword [ebx + 0x20], xmm0
add ebx, 0x30
mov dword [edi + 4], ebx
jmp 0x5022ef
mov ecx, edi
push esi
call 0x48b45d0
mov ecx, esi
call 0x2ffbed0
lea ecx, [esp + 0x58]
call 0x2ffbed0
cmp byte [esp + 0x2b], 0
jns 0x502312
push dword [esp + 0x20]
call 0x1a0f660
add esp, 4
cmp byte [esp + 0x37], 0
jns 0x502022
push dword [esp + 0x2c]
call 0x1a0f660
add esp, 4
jmp 0x502022
xor edx, edx
mov dword [esp], 0
jmp 0x50213b
mov dword [esp + 4], 0
xor ebx, ebx
jmp 0x502252
mov eax, dword [esp + 0x38]
cmp dword [eax + 8], 0
setne al
cmp byte [esp + 0x3c], 0
setne bh
and bh, al
push 0x1a6dea58
call 0xc84800
add esp, 4
test al, al
jne 0x5023d8
mov byte [esp + 0x14], bh
lea esi, [esp + 0x18]
xor eax, eax
dec eax
mov dword [esi + 4], eax
mov dword [esi], eax
push 0x10
call 0x1a0f590
add esp, 4
mov edi, eax
xor ebx, ebx
mov ecx, eax
push ebx
push ebx
push ebx
call 0xfdea22f0
mov dword [esi], edi
mov byte [esi + 4], 0
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov edx, esi
push 0x155
push 0x1a2e6ea0
push 4
push 0x1a2e6ff8
push 8
push 0x19cdfb55
call 0xfe91a430
add esp, 0x18
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0xb]
test al, al
jns 0x502441
mov eax, dword [edx + 4]
mov edx, dword [edx]
jmp 0x502444
and eax, 0x7f
mov ecx, esi
push eax
push edx
push ebx
call 0xfe633980
lea eax, [esp + 0x2c]
mov byte [eax + 0xb], 2
cmp eax, 0x1a2e7018
ja 0x50246c
lea eax, [esp + 0x30]
cmp eax, 0x1a2e7018
ja 0x502a51
mov dword [esp + 0x2c], 0x25005f
mov word [esp + 0x30], 0
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x78]
mov dword [ecx + 8], eax
movsd xmm0, qword [esp + 0x2c]
movsd qword [ecx], xmm0
cmp byte [ecx + 0xb], 0
mov eax, ecx
mov bh, byte [esp + 0x14]
jns 0x5024a0
mov eax, dword [esp + 0x78]
lea esi, [esp + 0x58]
push 0x21
push eax
push esi
call 0x256e690
xor eax, eax
dec eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
cmp byte [esp + 0x57], 0
js 0x5024d5
mov eax, dword [esp + 0x54]
mov dword [esp + 0x60], eax
movsd xmm0, qword [esp + 0x4c]
movsd qword [esp + 0x58], xmm0
jmp 0x502540
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
cmp ebx, 4
jbe 0x502a2f
cmp ebx, 0x7ffffff0
jae 0x502a44
mov edi, ebx
or edi, 7
inc edi
js 0x502a49
lea eax, [edi + edi]
push eax
call 0x1a0f590
add esp, 4
mov dword [esp + 0x58], eax
or edi, 0x80000000
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], ebx
cmp eax, esi
ja 0x50252e
lea ecx, [eax + ebx*2]
add ecx, 2
cmp ecx, esi
ja 0x502a57
inc ebx
add ebx, ebx
push ebx
push esi
push eax
call 0x1a16b20
add esp, 0xc
mov bh, byte [esp + 0x14]
movzx eax, byte [esp + 0x83]
test al, al
jns 0x502556
mov esi, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
jmp 0x50255f
mov ecx, eax
and ecx, 0x7f
lea esi, [esp + 0x78]
test ecx, ecx
je 0x502638
lea eax, [esi + ecx*2]
mov dword [esp + 0xc], eax
mov cl, byte [esp + 0x63]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, ecx
and al, 0x7f
test cl, cl
movzx eax, al
cmovs eax, dword [esp + 4]
test eax, eax
mov dword [esp], esi
je 0x50261d
movzx edx, word [esi]
mov word [esp + 8], dx
test cl, cl
lea ebx, [esp + 0x58]
cmovs ebx, dword [esp + 0x10]
xor edi, edi
cmp eax, edi
je 0x50261d
lea esi, [edi + edi]
neg esi
movzx edx, word [esp + 8]
cmp word [ebx + edi*2], dx
je 0x5025ce
add esi, 0xfffffffe
inc edi
cmp eax, edi
jne 0x5025b9
jmp 0x50261d
cmp ebx, esi
je 0x50261d
cmp esi, 2
je 0x50261d
neg esi
add ebx, esi
sar esi, 1
lea edi, [esp + 0x58]
mov ecx, edi
push 0x21
push ebx
lea eax, [esp + 0x28]
push eax
call 0x256e690
add esi, 2
movzx ecx, byte [esp + 0x63]
mov eax, ecx
and eax, 0x7f
test cl, cl
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 4], ebx
cmovs eax, ebx
mov ebx, edi
mov dword [esp + 0x10], edx
cmovs ebx, edx
mov edi, esi
cmp eax, esi
ja 0x5025b0
mov esi, dword [esp]
add esi, 2
cmp esi, dword [esp + 0xc]
jne 0x502582
mov al, byte [esp + 0x83]
mov bh, byte [esp + 0x14]
test al, al
jns 0x502648
push dword [esp + 0x78]
call 0x1a0f660
add esp, 4
movzx eax, byte [esp + 0x63]
test al, al
invalid
jns 0x50265b
mov edx, dword [esp + 0x58]
and eax, 0x7f
lea edx, [esp + 0x58]
lea eax, [esp + 0x58]
mov byte [eax + 0xb], bl
jmp 0x50251c
int3
int3
call 0x1a132d0
call 0x1a6acb0
int3
int3
int3