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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov esi, ecx
mov eax, dword [0x603024]
xor eax, ebp
mov dword [esp + 0x88], eax
mov ecx, dword [ecx + 0x10]
lea eax, [ecx + 1]
cmp eax, dword [esi + 0xc]
ja 0x500574
mov edx, dword [esi + 8]
mov dword [esi + 0x10], eax
cmp byte [edx + ecx], 0x5b
jne 0x500576
lea edi, [esi + 0x14]
mov ecx, edi
shr ecx, 0xe
xor eax, eax
inc eax
shl eax, cl
mov dword [esp + 0x1c], eax
mov eax, edi
shr eax, 0x13
mov dword [esp + 0x18], eax
mov eax, dword [eax*4 + 0x60a0d8]
bt eax, ecx
mov dword [esp], esi
mov esi, dword [esi + 4]
jb 0x5005bd
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x6120d8], 1
mov eax, dword [edi]
inc eax
mov dword [edi], eax
cmp eax, esi
jae 0x5005cb
mov dword [esp + 0x20], edi
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov esi, dword [esp]
mov ecx, esi
call fcn.004ff430
mov edi, eax
mov eax, dword [ebp + 8]
add eax, 4
mov dword [esp + 0x10], eax
cmp edi, 3
je 0x50040c
pcmpeqd xmm1, xmm1
movdqu xmmword [esp + 0x5c], xmm1
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x50], xmm1
cmp edi, 8
ja case.0x500025.1
jmp dword [edi*4 + 0x5f7da0]
mov ecx, esi
lea eax, [esp + 0x50]
push eax
call fcn.005006c0
cmp byte [esp + 0x50], 0
je 0x5002e2
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp edi, eax
jb 0x500230
mov edx, dword [esp + 0x24]
mov dword [esp + 8], edi
sub edi, edx
sar edi, 2
imul ebx, edi, 0xcccccccd
lea edi, [ebx + 1]
cmp edi, 0xccccccd
jae 0x500549
sub eax, edx
sar eax, 2
imul eax, eax, 0xcccccccd
lea ecx, [eax + eax]
cmp ecx, edi
cmova edi, ecx
cmp eax, 0x6666666
mov eax, 0xccccccc
cmovae edi, eax
test edi, edi
mov dword [esp + 4], edx
je 0x500563
cmp edi, 0xccccccd
jae 0x500552
lea eax, [edi*4]
lea eax, [eax + eax*4]
push eax
call fcn.0050397a
add esp, 4
mov esi, eax
lea ecx, [ebx + ebx*4]
mov dword [esp + 0xc], ecx
lea ebx, [esi + ecx*4]
lea eax, [edi + edi*4]
lea edi, [esi + eax*4]
mov ecx, ebx
lea eax, [esp + 0x54]
push eax
call fcn.004e78f0
mov eax, dword [esp + 0xc]
lea ecx, [esi + eax*4]
add ecx, 0x14
mov eax, dword [esp + 8]
cmp eax, dword [esp + 4]
je 0x50013f
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], edi
mov esi, eax
add esi, 0xffffffec
add ebx, 0xffffffec
mov ecx, ebx
push esi
call fcn.004e78f0
cmp esi, dword [esp + 4]
jne 0x5000fc
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
mov esi, dword [esp]
mov edi, dword [esp + 8]
add edi, 0xffffffec
mov ecx, edi
call fcn.004e8e80
mov eax, dword [esp + 4]
cmp edi, eax
jne 0x50012b
jmp 0x50014e
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edi
mov esi, dword [esp]
test eax, eax
je 0x50015b
push eax
call fcn.005039aa
add esp, 4
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
lea esi, [ecx + 1]
cmp esi, edx
ja 0x5001c9
nop dword [eax + eax]
mov eax, dword [esp]
mov eax, dword [eax + 8]
movzx ebx, byte [eax + ecx]
movsx edi, bl
cmp edi, 0x20
jne 0x500191
mov eax, dword [esp]
mov dword [eax + 0x10], esi
mov ecx, esi
inc esi
cmp esi, edx
jbe 0x500170
jmp case.0x500199.11
add edi, 0xfffffff7
cmp edi, 0x26
ja case.0x500199.11
jmp dword [edi*4 + 0x5f7dc4]
mov edi, dword [esp]
mov dword [edi + 0x1c], ecx
cmp bl, 0xa
jne 0x5001be
test ecx, ecx
jle 0x5001be
dec ecx
cmp edx, ecx
jbe 0x500557
cmp byte [eax + ecx], 0xd
je case.0x500199.9
mov eax, dword [esp]
inc dword [eax + 0x18]
jmp case.0x500199.9
lea esi, [ecx + 1]
cmp esi, edx
ja 0x5004d2
mov esi, dword [esp]
mov eax, dword [esi + 8]
movsx eax, byte [eax + ecx]
mov edi, 3
mov bl, 1
cmp eax, 0x5c
jg 0x500219
lea edi, [eax - 0x22]
cmp edi, 0x18
ja case.default.0x5001f3
jmp dword [edi*4 + 0x5f7e60]
inc ecx
cmp ecx, edx
ja 0x500202
mov dword [esi + 0x10], ecx
mov ecx, esi
call fcn.004ff430
cmp eax, 3
je 0x500676
mov edi, eax
jmp 0x5002fd
cmp eax, 0x73
jg 0x5003aa
cmp eax, 0x5d
je 0x5002fd
jmp 0x50049f
mov ecx, edi
lea eax, [esp + 0x54]
push eax
call fcn.004e78f0
add edi, 0x14
mov dword [esp + 0x28], edi
jmp 0x50015b
mov ecx, esi
lea eax, [esp + 0x50]
push eax
call fcn.004fff50
jmp 0x500038
lea eax, [esp + 0x74]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 0xffffffff
xor eax, eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov byte [esp + 0x74], 0
mov ecx, esi
lea eax, [esp + 0x6c]
push eax
call fcn.00500a00
test al, al
je 0x500648
cmp byte [esp + 0x74], 0
mov dword [esp + 4], edi
jne 0x5004ae
mov ebx, dword [esp + 0x70]
cmp ebx, 0xfffffff0
jae 0x50055a
mov eax, dword [esp + 0x6c]
cmp ebx, 0xb
jae 0x50031a
mov byte [esp + 0x3b], bl
lea edi, [esp + 0x30]
test ebx, ebx
jne 0x500348
jmp 0x500353
mov edi, 4
xor edx, edx
inc edx
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x18]
mov dword [esi + 0x24], eax
sub ecx, dword [esi + 0x1c]
cmp ecx, 2
cmovl ecx, edx
mov dword [esi + 0x28], ecx
mov eax, dword [ebp + 8]
mov byte [eax], 0
mov eax, dword [esp + 0x10]
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 0
xor ebx, ebx
cmp byte [esp + 0x50], 0
je 0x50030d
lea ecx, [esp + 0x54]
call fcn.004e8e80
test bl, bl
jne 0x4fffff
jmp 0x50043f
lea esi, [ebx + 0x10]
and esi, 0xfffffff0
push esi
mov dword [esp + 0xc], eax
call fcn.0050397a
add esp, 4
mov edi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x30], edi
or esi, 0x80000000
mov dword [esp + 0x38], esi
mov esi, dword [esp]
mov dword [esp + 0x34], ebx
push ebx
push eax
push edi
call fcn.00506d50
add esp, 0xc
mov byte [edi + ebx], 0
lea edi, [esp + 0x3c]
mov ecx, edi
lea eax, [esp + 0x30]
push eax
call fcn.004e7c20
mov byte [esp + 0x50], 1
lea ecx, [esp + 0x54]
push edi
call fcn.004e78f0
mov ecx, edi
call fcn.004e8e80
cmp byte [esp + 0x3b], 0
js 0x500665
mov edi, dword [esp + 4]
cmp byte [esp + 0x74], 0
je 0x500038
cmp byte [esp + 0x83], 0
jns 0x500038
jmp 0x5006ad
cmp eax, 0x7d
je 0x500484
xor edi, edi
cmp eax, 0x7b
je 0x5002ca
jmp 0x50048c
mov edi, 5
jmp 0x5002ca
mov edi, 0xa
jmp 0x5002ca
mov ecx, esi
lea eax, [esp + 0x50]
push eax
call fcn.004afa00
jmp 0x500038
cmp eax, 0x5b
jne case.0x5001f3.35
mov edi, 2
jmp 0x5002ca
mov ecx, esi
lea eax, [esp + 0x50]
push eax
call fcn.004ff540
jmp 0x500038
mov eax, dword [esi + 0x10]
inc eax
cmp eax, dword [esi + 0xc]
ja 0x500418
mov dword [esi + 0x10], eax
lea eax, [esp + 0x24]
lea esi, [esp + 0x6c]
mov ecx, esi
push eax
call fcn.004e8070
mov eax, dword [ebp + 8]
mov byte [eax], 1
mov ecx, dword [esp + 0x10]
push esi
call fcn.004e78f0
mov ecx, esi
call fcn.004e8e80
mov edi, dword [esp + 0x24]
test edi, edi
jne 0x50060c
mov edi, dword [esp + 0x20]
mov eax, dword [edi]
dec eax
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test dword [ecx*4 + 0x60a0d8], eax
jne 0x50063a
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.00504b53
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
xor edi, edi
inc edi
jmp 0x5002ca
cmp eax, 0x74
jne case.0x5001f3.35
mov edi, 6
jmp 0x5002ca
cmp eax, 0x66
jne 0x5004fe
mov edi, 7
jmp 0x5002ca
lea ecx, [esp + 0x78]
mov eax, dword [ecx + 8]
mov dword [esp + 0x38], eax
movq xmm0, qword [ecx]
movq qword [esp + 0x30], xmm0
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 8], eax
jmp 0x500357
mov edi, 0xb
mov esi, dword [esp]
jmp 0x5002ca
mov esi, dword [esp]
mov ecx, esi
call fcn.004af730
mov edx, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
mov ecx, esi
test al, al
jne 0x500188
jmp case.0x500199.11
cmp eax, 0x6e
jne case.0x5001f3.35
mov edi, 8
jmp 0x5002ca
mov dword [esi + 0x20], 3
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x24], ecx
sub eax, dword [esi + 0x1c]
xor ecx, ecx
inc ecx
cmp eax, 2
cmovge ecx, eax
mov dword [esi + 0x28], ecx
mov byte [esp + 0x50], 0
pxor xmm0, xmm0
lea eax, [esp + 0x54]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 0
jmp 0x5002e2
lea ecx, [esp + 0x24]
call fcn.00536260
call fcn.00518ff0
int3
lea ecx, [esp + 0x30]
call fcn.0055adb0
xor esi, esi
jmp 0x5000c2
mov edi, 0xc
jmp 0x5002ca
mov eax, ecx
mov dword [esi + 0x20], 3
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x24], ecx
sub eax, dword [esi + 0x1c]
xor ecx, ecx
inc ecx
cmp eax, 2
cmovge ecx, eax
mov dword [esi + 0x28], ecx
mov esi, dword [ebp + 8]
mov byte [esi], 0
pxor xmm0, xmm0
movdqu xmmword [esi + 4], xmm0
mov dword [esi + 0x14], 0
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.00504b53
mov eax, esi
jmp 0x50047a
push edi
call fcn.004e1ce0
add esp, 4
jmp 0x4fffca
mov esi, dword [esp]
mov dword [esi + 0x20], 5
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x24], ecx
not edx
add edx, dword [esi + 0x10]
cmp edx, 2
mov ecx, 1
cmovge ecx, edx
mov dword [esi + 0x28], ecx
mov ecx, dword [ebp + 8]
mov byte [ecx], 0
pxor xmm0, xmm0
movdqu xmmword [ecx + 4], xmm0
mov dword [ecx + 0x14], 0
jmp 0x500451
mov esi, dword [esp + 0x28]
mov eax, edi
cmp esi, edi
je 0x500628
add esi, 0xffffffec
mov ecx, esi
call fcn.004e8e80
cmp esi, edi
jne 0x500616
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], edi
push eax
call fcn.005039aa
add esp, 4
jmp 0x50044b
push edi
call fcn.004e1df0
add esp, 4
jmp 0x500469
mov byte [esp + 0x50], 0
pxor xmm0, xmm0
lea eax, [esp + 0x54]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 0
jmp 0x50038c
push dword [esp + 0x30]
call fcn.005039aa
add esp, 4
jmp 0x500388
test byte [esi], 1
mov edi, 3
jne 0x5002fd
mov dword [esi + 0x20], 4
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x24], ecx
sub eax, dword [esi + 0x1c]
xor ecx, ecx
inc ecx
cmp eax, 2
cmovge ecx, eax
mov dword [esi + 0x28], ecx
mov edi, 3
jmp 0x5002e2
push dword [esp + 0x78]
call fcn.005039aa
add esp, 4
jmp 0x500038