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

Disassembly:
push 0xffffffffffffffff
push 0x59097a
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x5e173c]
xor eax, esp
mov dword [esp + 0x90], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5e173c]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
mov ebx, edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], 0
xor eax, eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], 0
mov word [esp + 0x74], ax
mov dword [esp + 0xb0], 1
lea ecx, [esp + 0x1c]
call fcn.004b90c0
mov byte [esp + 0xb0], 3
xorps xmm0, xmm0
movq qword [esp + 0x68], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0xb0], 4
movq qword [esp + 0x5c], xmm0
mov dword [esp + 0x64], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov byte [esp + 0xb0], 5
lea eax, [esp + 0x68]
push eax
push 0
mov byte [esp + 0x1e], 0
mov byte [esp + 0x1f], 0
call fcn.005065f0
lea ecx, [esp + 0x68]
call fcn.005068c0
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp dword [esp + 0x68], eax
lea eax, [esp + 0x5c]
movzx ecx, byte [esp + 0x16]
push eax
cmovne ecx, edi
push 7
mov dword [esp + 0x40], ecx
call fcn.005065f0
lea ecx, [esp + 0x5c]
call fcn.005068c0
mov esi, dword [esp + 0x5c]
mov ecx, ebx
cmp esi, dword [esp + 0x60]
movzx eax, byte [esp + 0x17]
cmovne eax, edi
mov dword [esp + 0x34], eax
lea eax, [esp + 0x8c]
push eax
call fcn.005084d0
mov byte [esp + 0xb0], 6
mov ebp, dword [esp + 0x9c]
test ebp, ebp
je 0x4ca400
mov ecx, dword [esp + 0x6c]
mov eax, 0x2aaaaaab
sub ecx, dword [esp + 0x68]
xor edi, edi
imul ecx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
je 0x4ca400
mov esi, dword [esp + 0x68]
jmp 0x4ca300
cmp dword [esp + 0xa0], 8
lea eax, [esp + 0x8c]
push ebp
cmovae eax, dword [esp + 0x90]
push eax
push dword [esi + 0x10]
push ecx
mov ecx, esi
call fcn.0040d0c0
test eax, eax
je 0x4ca33d
inc edi
add esi, 0x18
cmp edi, ebx
jae 0x4ca3fc
mov ebp, dword [esp + 0x9c]
jmp 0x4ca300
mov ecx, dword [esp + 0x60]
mov eax, 0x2aaaaaab
mov esi, dword [esp + 0x5c]
sub ecx, esi
imul ecx
mov dword [esp + 0x24], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x30], eax
je 0x4ca400
mov ebp, dword [esp + 0x9c]
mov edi, esi
cmp dword [edi + 0x14], 8
mov ebx, dword [edi + 0x10]
jb 0x4ca380
mov edx, dword [edi]
jmp 0x4ca382
mov edx, edi
cmp dword [esp + 0xa0], 8
lea ecx, [esp + 0x8c]
mov esi, ebx
cmovae ecx, dword [esp + 0x8c]
cmp ebp, ebx
cmovb esi, ebp
test esi, esi
jne 0x4ca3b3
xor eax, eax
test eax, eax
jne 0x4ca3db
cmp ebp, ebx
jae 0x4ca3d2
or eax, 0xffffffff
jmp 0x4ca3d9
mov ax, word [ecx]
cmp ax, word [edx]
jne 0x4ca3c4
add ecx, 2
add edx, 2
dec esi
jmp 0x4ca3a2
movzx eax, word [ecx]
cmp ax, word [edx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x4ca3a6
xor eax, eax
cmp ebp, ebx
setne al
test eax, eax
sete al
test al, al
jne 0x4ca476
mov esi, dword [esp + 0x24]
add edi, 0x18
inc esi
mov dword [esp + 0x24], esi
cmp esi, dword [esp + 0x30]
jb 0x4ca373
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x6c]
mov eax, 0x2aaaaaab
mov ebx, dword [esp + 0x68]
xor edi, edi
sub ecx, ebx
mov dword [esp + 0x30], edi
imul ecx
sar edx, 2
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov dword [esp + 0x40], ebp
je 0x4ca6eb
mov ecx, dword [esp + 0x60]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x3c], eax
jmp 0x4ca450
mov dword [esp + 0x24], 0
test eax, eax
je 0x4ca6d7
mov edi, esi
cmp dword [edi + 0x14], 8
mov ecx, dword [edi + 0x10]
jb 0x4ca648
mov edx, dword [edi]
jmp 0x4ca64a
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x8c]
push eax
call fcn.00508ba0
test al, al
je 0x4ca3fc
mov ebx, dword [esp + 0x18]
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov word [ebx], ax
cmp dword [esp + 0xa0], 8
jae 0x4ca4d0
mov eax, dword [esp + 0x9c]
inc eax
je 0x4ca4fc
add eax, eax
push eax
lea eax, [esp + 0x90]
push eax
push ebx
call fcn.00565090
add esp, 0xc
jmp 0x4ca4fc
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov byte [esp + 0xb0], 7
mov eax, dword [esp + 0x8c]
mov dword [ebx], eax
mov byte [esp + 0xb0], 6
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0x9c]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0xa0]
mov dword [ebx + 0x14], eax
xor eax, eax
mov dword [esp + 0xa0], 7
mov dword [esp + 0x9c], 0
mov word [esp + 0x8c], ax
mov dword [esp + 0x28], 1
mov byte [esp + 0xb0], 5
cmp dword [esp + 0xa0], 8
jb 0x4ca559
push dword [esp + 0x8c]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esp + 0xa0], 7
mov dword [esp + 0x9c], 0
mov word [esp + 0x8c], ax
mov byte [esp + 0xb0], 4
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x4ca5de
mov ebp, dword [esp + 0x60]
mov esi, edi
cmp edi, ebp
je 0x4ca5bd
cmp dword [esi + 0x14], 8
jb 0x4ca5a3
push dword [esi]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x18
cmp esi, ebp
jne 0x4ca593
push edi
call fcn.00564de3
add esp, 4
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov byte [esp + 0xb0], 3
mov ebp, dword [esp + 0x68]
test ebp, ebp
je 0x4ca643
mov edi, dword [esp + 0x6c]
mov esi, ebp
cmp ebp, edi
je 0x4ca622
cmp dword [esi + 0x14], 8
jb 0x4ca608
push dword [esi]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x18
cmp esi, edi
jne 0x4ca5f8
push ebp
call fcn.00564de3
add esp, 4
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
jmp 0x4cad4c
mov edx, edi
cmp dword [ebx + 0x14], 8
mov ebp, dword [ebx + 0x10]
jb 0x4ca657
mov eax, dword [ebx]
jmp 0x4ca659
mov eax, ebx
cmp ebp, ecx
mov esi, ecx
cmovb esi, ebp
test esi, esi
jne 0x4ca676
xor eax, eax
test eax, eax
jne 0x4ca698
mov ecx, dword [edi + 0x10]
cmp ebp, ecx
jae 0x4ca68f
or eax, 0xffffffff
jmp 0x4ca696
mov cx, word [eax]
cmp cx, word [edx]
jne 0x4ca687
add eax, 2
add edx, 2
dec esi
jmp 0x4ca662
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x4ca666
xor eax, eax
cmp ebp, ecx
setne al
test eax, eax
sete al
test al, al
je 0x4ca6b1
mov ecx, dword [esp + 0x2c]
push ebx
call fcn.00508ba0
test al, al
jne 0x4ca73d
mov eax, dword [esp + 0x24]
add edi, 0x18
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x3c]
jb 0x4ca462
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x30]
inc edi
add ebx, 0x18
mov dword [esp + 0x30], edi
cmp edi, ebp
jb 0x4ca450
mov ebx, dword [esp + 0x68]
xor edi, edi
test ebp, ebp
je 0x4ca70d
mov esi, ebx
mov ecx, dword [esp + 0x2c]
push esi
call fcn.00508ba0
test al, al
jne 0x4ca905
inc edi
add esi, 0x18
cmp edi, ebp
jb 0x4ca6f3
xor edi, edi
test ebp, ebp
je 0x4caba9
mov esi, ebx
mov ebx, dword [esp + 0x2c]
lea ecx, [ecx]
push esi
mov ecx, ebx
call fcn.00508980
test al, al
jne 0x4caaa2
inc edi
add esi, 0x18
cmp edi, ebp
jb 0x4ca720
jmp 0x4cabad
lea eax, [esp + 0x74]
cmp eax, ebx
je 0x4ca751
push 0xffffffffffffffff
push 0
push ebx
mov ecx, eax
call fcn.00404960
mov ebx, dword [esp + 0x18]
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov word [ebx], ax
cmp dword [esp + 0x88], 8
jae 0x4ca78f
mov eax, dword [esp + 0x84]
inc eax
je 0x4ca7b5
add eax, eax
push eax
lea eax, [esp + 0x78]
push eax
push ebx
call fcn.00565090
add esp, 0xc
jmp 0x4ca7b5
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov byte [esp + 0xb0], 9
mov eax, dword [esp + 0x74]
mov dword [ebx], eax
mov byte [esp + 0xb0], 6
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x84]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x88]
mov dword [ebx + 0x14], eax
xor eax, eax
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], 0
mov word [esp + 0x74], ax
mov dword [esp + 0x28], 1
mov byte [esp + 0xb0], 5
cmp dword [esp + 0xa0], 8
jb 0x4ca80f
push dword [esp + 0x8c]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esp + 0xa0], 7
mov dword [esp + 0x9c], 0
mov word [esp + 0x8c], ax
mov byte [esp + 0xb0], 4
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x4ca89b
mov ebp, dword [esp + 0x60]
mov esi, edi
cmp edi, ebp
je 0x4ca87a
lea esp, [esp]
cmp dword [esi + 0x14], 8
jb 0x4ca860
push dword [esi]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x18
cmp esi, ebp
jne 0x4ca850
push edi
call fcn.00564de3
add esp, 4
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov byte [esp + 0xb0], 3
mov ebp, dword [esp + 0x68]
test ebp, ebp
je 0x4ca900
mov edi, dword [esp + 0x6c]
mov esi, ebp
cmp ebp, edi
je 0x4ca8df
cmp dword [esi + 0x14], 8
jb 0x4ca8c5
push dword [esi]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x18
cmp esi, edi
jne 0x4ca8b5
push ebp
call fcn.00564de3
add esp, 4
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
jmp 0x4cad4c
lea eax, [esp + 0x74]
cmp eax, esi
je 0x4ca919
push 0xffffffffffffffff
push 0
push esi
mov ecx, eax
call fcn.00404960
mov ebx, dword [esp + 0x18]
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov word [ebx], ax
cmp dword [esp + 0x88], 8
jae 0x4ca957
mov eax, dword [esp + 0x84]
inc eax
je 0x4ca97d
add eax, eax
push eax
lea eax, [esp + 0x78]
push eax
push ebx
call fcn.00565090
add esp, 0xc
jmp 0x4ca97d
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov byte [esp + 0xb0], 0xb
mov eax, dword [esp + 0x74]
mov dword [ebx], eax
mov byte [esp + 0xb0], 6
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x84]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x88]
mov dword [ebx + 0x14], eax
xor eax, eax
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], 0
mov word [esp + 0x74], ax
mov dword [esp + 0x28], 1
mov byte [esp + 0xb0], 5
cmp dword [esp + 0xa0], 8
jb 0x4ca9d7
push dword [esp + 0x8c]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esp + 0xa0], 7
mov dword [esp + 0x9c], 0
mov word [esp + 0x8c], ax
mov byte [esp + 0xb0], 4
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x4caa5c
mov ebp, dword [esp + 0x60]
mov esi, edi
cmp edi, ebp
je 0x4caa3b
cmp dword [esi + 0x14], 8
jb 0x4caa21
push dword [esi]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x18
cmp esi, ebp
jne 0x4caa11
push edi
call fcn.00564de3
add esp, 4
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov byte [esp + 0xb0], 3
mov ebp, dword [esp + 0x68]
test ebp, ebp
je 0x4caa9d
push dword [esp + 0x20]
mov edx, dword [esp + 0x70]
push ecx
mov ecx, ebp
call fcn.0040d3f0
push ebp
call fcn.00564de3
add esp, 0xc
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
jmp 0x4cad4c
lea eax, [esp + 0x74]
cmp eax, esi
je 0x4caab6
push 0xffffffffffffffff
push 0
push esi
mov ecx, eax
call fcn.00404960
mov ebx, dword [esp + 0x18]
xor eax, eax
mov ecx, ebx
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov word [ebx], ax
lea eax, [esp + 0x74]
push eax
call fcn.00404150
mov dword [esp + 0x28], 1
mov byte [esp + 0xb0], 5
cmp dword [esp + 0xa0], 8
jb 0x4cab02
push dword [esp + 0x8c]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esp + 0xa0], 7
mov dword [esp + 0x9c], 0
mov word [esp + 0x8c], ax
mov byte [esp + 0xb0], 4
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x4cab63
push dword [esp + 0x20]
mov edx, dword [esp + 0x64]
push ecx
mov ecx, edi
call fcn.0040d3f0
push edi
call fcn.00564de3
add esp, 0xc
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov byte [esp + 0xb0], 3
mov ebp, dword [esp + 0x68]
test ebp, ebp
je 0x4caba4
push dword [esp + 0x20]
mov edx, dword [esp + 0x70]
push ecx
mov ecx, ebp
call fcn.0040d3f0
push ebp
call fcn.00564de3
add esp, 0xc
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
jmp 0x4cad4c
mov ebx, dword [esp + 0x2c]
cmp byte [esp + 0x38], 0
jne 0x4cac5e
cmp byte [esp + 0x34], 0
jne 0x4cac5e
cmp dword [esp + 0x84], 0
jne 0x4cac5e
lea eax, [esp + 0x44]
mov ecx, ebx
push eax
call fcn.005084d0
mov esi, eax
mov byte [esp + 0xb0], 0xe
lea eax, [esp + 0x74]
cmp eax, esi
je 0x4cac2c
cmp dword [esp + 0x88], 8
jb 0x4cac05
push dword [esp + 0x74]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esp + 0x88], 7
push esi
lea ecx, [esp + 0x78]
mov dword [esp + 0x88], 0
mov word [esp + 0x78], ax
call fcn.00404150
mov byte [esp + 0xb0], 6
cmp dword [esp + 0x58], 8
jb 0x4cac47
push dword [esp + 0x44]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], 0
mov word [esp + 0x44], ax
mov ebx, dword [esp + 0x18]
xor eax, eax
mov ecx, ebx
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov word [ebx], ax
lea eax, [esp + 0x74]
push eax
call fcn.00404150
mov dword [esp + 0x28], 1
mov byte [esp + 0xb0], 5
cmp dword [esp + 0xa0], 8
jb 0x4cacaa
push dword [esp + 0x8c]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esp + 0xa0], 7
mov dword [esp + 0x9c], 0
mov word [esp + 0x8c], ax
mov byte [esp + 0xb0], 4
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x4cad0b
push dword [esp + 0x20]
mov edx, dword [esp + 0x64]
push ecx
mov ecx, edi
call fcn.0040d3f0
push edi
call fcn.00564de3
add esp, 0xc
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov byte [esp + 0xb0], 3
mov ebp, dword [esp + 0x68]
test ebp, ebp
je 0x4cad4c
push dword [esp + 0x20]
mov edx, dword [esp + 0x70]
push ecx
mov ecx, ebp
call fcn.0040d3f0
push ebp
call fcn.00564de3
add esp, 0xc
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0xb0], 1
lea ecx, [esp + 0x1c]
call fcn.004b9210
mov byte [esp + 0xb0], 0
cmp dword [esp + 0x88], 8
jb 0x4cad7b
push dword [esp + 0x74]
call fcn.00564de3
add esp, 4
xor eax, eax
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], eax
mov word [esp + 0x74], ax
mov eax, ebx
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.00564de8
add esp, 0xa0
ret