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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov ebx, ecx
mov ecx, dword [esp + 0x98]
mov esi, edx
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], esi
cmp ecx, 0x21
jb 0x5aa491
mov ebx, ecx
mov ebp, edi
shr ebx, 1
sub ebp, ebx
jae 0x5aa869
mov ebp, edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 4
mov dword [esp + 0x20], 0
add ebp, ecx
jb 0x5aa867
test ebp, ebp
mov ebx, 0
mov dword [esp], 0
jne 0x5aad48
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x20], ebx
jmp 0x5aa655
test ecx, ecx
je 0x5aa867
mov esi, dword [edx]
lea eax, [edi*4]
test edi, edi
mov dword [esp + 4], 0
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], eax
jne 0x5aadc7
xor edi, edi
mov ebp, 4
lea eax, [ebp + edi*4]
push dword [esp + 0x14]
push dword [esp + 0x2c]
push eax
call fcn.00654250
add esp, 0xc
mov eax, edi
add eax, dword [esp + 0x90]
jb 0x5aa867
mov ecx, dword [esp + 0x98]
mov dword [esp + 0xc], eax
je 0x5aa566
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp], eax
lea ecx, [ecx + edi*4]
xor edi, edi
nop dword [eax]
mov eax, esi
mul dword [ebp + ebx]
add eax, edi
mov edi, edx
adc edi, 0
mov dword [ebp + ebx], eax
add ebx, 4
cmp ecx, ebx
jne 0x5aa510
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x98]
mov eax, dword [esp]
test edi, edi
je 0x5aa566
cmp eax, dword [esp + 4]
jne 0x5aa557
lea ecx, [esp + 4]
call fcn.0059a3d0
mov eax, dword [esp]
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 8]
mov dword [ebp + eax*4], edi
inc eax
je 0x5aa867
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0x90]
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov ebp, edi
mov dword [esp + 0x20], eax
movsd qword [esp + 0x18], xmm0
add ebp, ecx
jb 0x5aa867
mov esi, dword [esp + 0x20]
mov eax, ebp
sub ebp, esi
jbe 0x5aa60a
mov eax, dword [esp + 0x18]
sub eax, esi
cmp eax, ebp
jb 0x5aade3
mov edx, dword [esp + 0x1c]
cmp ebp, 2
lea eax, [edx + esi*4]
jb 0x5aa5fb
mov ebx, esi
lea edi, [ebp - 2]
mov dword [esp], edx
not ebx
mov ecx, edi
cmp ebx, edi
cmovb ecx, ebx
lea ecx, [ecx*4 + 4]
push ecx
push 0
push eax
call fcn.006547d0
add esp, 0xc
cmp edi, ebx
jae 0x5aa867
mov ecx, dword [esp]
lea eax, [esi + ebp]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x90]
lea esi, [esi + ebp - 1]
lea eax, [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x98]
inc esi
mov dword [eax], 0
je 0x5aa867
mov eax, esi
cmp ecx, 1
mov dword [esp + 0x20], eax
je 0x5aa6fb
mov ebp, dword [esp + 0x94]
xor ebx, ebx
lea eax, [ebp + ecx*4]
add ebp, 4
mov dword [esp + 0x34], eax
jmp 0x5aa795
shl eax, 2
push 4
push eax
push ebp
call fcn.004afc10
add esp, 0xc
mov ecx, dword [esp + 0x10]
lea ebp, [esi + edi*4]
mov esi, dword [esp + 0x28]
sub ecx, edi
mov edi, dword [esp + 0x90]
je 0x5aa6a4
cmp edi, ecx
mov eax, edi
mov edi, ecx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 4]
mov edx, esi
cmovb edi, eax
push edi
mov esi, ebp
push ebp
push eax
call fcn.005aa410
add esp, 0xc
mov ebp, dword [esp + 8]
mov ebx, dword [esp]
lea ecx, [esp + 0x18]
mov edx, ebp
push ebx
push dword [esp + 0x10]
call fcn.005aa270
add esp, 8
add ebx, edi
mov dword [esp], ebx
jb 0x5aa867
mov eax, dword [esp + 4]
test eax, eax
jne 0x5aa630
jmp 0x5aa63f
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
test eax, eax
je 0x5aa6bf
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + eax*4 - 4], 0
je 0x5aa6d6
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
movsd xmm0, qword [esp + 0x18]
mov dword [esi + 8], eax
movsd qword [esi], xmm0
jmp 0x5aa71f
xor eax, eax
jmp 0x5aa6bb
dec eax
mov edx, eax
nop dword [eax]
sub edx, 1
jb 0x5aa6d2
cmp dword [ecx + eax*4 - 4], 0
mov eax, edx
je 0x5aa6e0
inc edx
mov eax, edx
jmp 0x5aa6bb
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
test eax, eax
je 0x5aa70e
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + eax*4 - 4], 0
je 0x5aa72b
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
movsd xmm0, qword [esp + 0x18]
mov dword [ebx + 8], eax
movsd qword [ebx], xmm0
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
jmp 0x5aa70a
dec eax
mov edx, eax
nop
sub edx, 1
jb 0x5aa727
cmp dword [ecx + eax*4 - 4], 0
mov eax, edx
je 0x5aa730
inc edx
mov eax, edx
jmp 0x5aa70a
mov ebp, dword [esp]
xor eax, eax
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 4]
lea ecx, [esp + 0x18]
mov edx, esi
inc ebx
push ebx
push eax
call fcn.005aa270
add esp, 8
test edi, edi
je 0x5aa781
shl edi, 2
push 4
push edi
push esi
call fcn.004afc10
add esp, 0xc
add ebp, 4
mov edi, dword [esp + 0x90]
cmp ebp, dword [esp + 0x34]
je 0x5aa6f3
mov dword [esp], ebp
mov ebp, dword [ebp]
mov dword [esp + 0x10], ebx
test edi, edi
mov esi, 4
mov ebx, 0
mov dword [esp + 4], 0
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
jne 0x5aa84b
lea eax, [esi + ebx*4]
push dword [esp + 0x14]
push dword [esp + 0x2c]
push eax
call fcn.00654250
add esp, 0xc
mov eax, ebx
add eax, edi
jb 0x5aa867
mov dword [esp + 0xc], eax
je 0x5aa750
mov ecx, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x24], eax
lea ecx, [ecx + ebx*4]
xor ebx, ebx
mov eax, ebp
mul dword [esi + edi]
add eax, ebx
mov ebx, edx
adc ebx, 0
mov dword [esi + edi], eax
add edi, 4
cmp ecx, edi
jne 0x5aa800
mov ebp, dword [esp]
mov eax, dword [esp + 0x24]
test ebx, ebx
je 0x5aa755
cmp eax, dword [esp + 4]
jne 0x5aa83c
lea ecx, [esp + 4]
call fcn.0059a3d0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 8]
mov dword [esi + eax*4], ebx
inc eax
je 0x5aa867
mov esi, dword [esp + 8]
jmp 0x5aa755
lea ecx, [esp + 4]
xor edx, edx
push edi
call fcn.006ec750
add esp, 4
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0xc]
jmp 0x5aa7c9
ud2
lea eax, [ebx*4]
mov dword [esp + 4], 0
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
lea ecx, [esp + 4]
xor edx, edx
mov dword [esp], eax
push ebx
call fcn.006ec750
add esp, 4
mov edi, dword [esp + 0xc]
lea eax, [edi*4]
add eax, dword [esp + 8]
push dword [esp]
push esi
push eax
call fcn.00654250
add esp, 0xc
add edi, ebx
jb 0x5aa867
lea edx, [esi + ebx*4]
mov dword [esp + 0xc], edi
lea ecx, [esp + 4]
mov dword [esp + 0x10], edx
push 0
push ebp
call fcn.005aa270
add esp, 8
mov eax, dword [esp + 4]
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], 0
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
xor edx, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], edi
lea ecx, [esp + 4]
push ebx
call fcn.006ec750
add esp, 4
mov esi, ebx
mov ebx, dword [esp + 0xc]
lea eax, [ebx*4]
add eax, dword [esp + 8]
push dword [esp]
mov ecx, dword [esp + 0x98]
push ecx
push eax
call fcn.00654250
add esp, 0xc
add ebx, esi
jb 0x5aa867
mov edi, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], ebx
lea ecx, [esp + 4]
sub edi, esi
lea edx, [eax + esi*4]
mov dword [esp], edx
push 0
push edi
call fcn.005aa270
add esp, 8
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x50], eax
lea ecx, [esp + 0x58]
push esi
push dword [esp + 0x98]
mov dword [esp + 0x2c], esi
push esi
call fcn.005aa410
add esp, 0xc
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x64]
push dword [esp + 0x2c]
mov dword [esp + 0x50], ebx
push ebx
push dword [esp + 0x1c]
call fcn.005aa410
add esp, 0xc
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x70]
push edi
push dword [esp + 4]
push ebp
call fcn.005aa410
add esp, 0xc
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x68]
cmp ebx, ebp
mov ecx, ebp
mov dword [esp], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x38], ebp
cmovb ecx, ebx
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x5aaaa8
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x2c], ebx
jmp 0x5aaa27
mov eax, dword [esp]
dec ebp
cmp esi, ebx
setbe dl
mov dword [eax + ecx*4], ebp
inc ecx
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x10], ecx
je 0x5aaa43
mov ebx, dword [edi + ecx*4]
mov edi, dword [esp]
mov esi, dword [edi + ecx*4]
mov ebp, esi
sub ebp, ebx
setb al
test dl, 1
mov dword [edi + ecx*4], ebp
mov edx, eax
je 0x5aaa1c
jmp 0x5aaa10
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
test dl, dl
je 0x5aaaa8
cmp ebx, ebp
jbe 0x5aa867
mov eax, dword [esp]
lea ecx, [ebp + 1]
mov edx, dword [esp + 0x24]
sub dword [eax + ebp*4], 1
setb al
cmp ecx, ebx
setb cl
and cl, al
cmp cl, 1
jne 0x5aaa88
mov ecx, dword [esp]
lea eax, [ebp + 2]
sub dword [ecx + eax*4 - 4], 1
jae 0x5aaa88
cmp eax, ebx
lea eax, [eax + 1]
jb 0x5aaa7a
mov eax, dword [esp]
cmp dword [eax + ebx*4 - 4], 0
jne 0x5aaad9
mov ecx, dword [esp]
dec ebx
mov eax, ebx
sub eax, 1
jb 0x5aaad7
cmp dword [ecx + ebx*4 - 4], 0
mov ebx, eax
je 0x5aaa98
jmp 0x5aaace
test ebx, ebx
je 0x5aaad3
mov eax, dword [esp]
mov edx, dword [esp + 0x24]
cmp dword [eax + ebx*4 - 4], 0
jne 0x5aaad9
mov ecx, dword [esp]
dec ebx
mov eax, ebx
sub eax, 1
jb 0x5aaad7
cmp dword [ecx + ebx*4 - 4], 0
mov ebx, eax
je 0x5aaac0
inc eax
mov ebx, eax
jmp 0x5aaad9
mov edx, dword [esp + 0x24]
xor ebx, ebx
mov esi, dword [esp + 0x60]
cmp ebx, esi
mov eax, esi
cmovb eax, ebx
test eax, eax
mov dword [esp + 0x10], eax
je 0x5aaba7
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], ebx
xor ebx, ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x14], eax
xor eax, eax
jmp 0x5aab23
mov edx, dword [esp]
dec ebp
cmp edi, esi
setbe bl
mov dword [edx + eax*4], ebp
inc eax
cmp dword [esp + 0x10], eax
je 0x5aab43
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + eax*4]
mov ecx, dword [esp]
mov edi, dword [ecx + eax*4]
mov ebp, edi
sub ebp, esi
setb dl
test bl, 1
mov dword [ecx + eax*4], ebp
mov ebx, edx
je 0x5aab1c
jmp 0x5aab10
test bl, bl
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x48]
je 0x5aaba7
cmp ebx, esi
jbe 0x5aa867
mov eax, dword [esp]
sub dword [eax + esi*4], 1
jae 0x5aab87
lea eax, [esi + 1]
cmp eax, ebx
jae 0x5aab87
mov ecx, dword [esp]
lea eax, [esi + 2]
sub dword [ecx + eax*4 - 4], 1
jae 0x5aab87
cmp eax, ebx
lea eax, [eax + 1]
jb 0x5aab79
mov eax, dword [esp]
cmp dword [eax + ebx*4 - 4], 0
jne 0x5aabd7
mov ecx, dword [esp]
dec ebx
mov eax, ebx
sub eax, 1
jb 0x5aabd5
cmp dword [ecx + ebx*4 - 4], 0
mov ebx, eax
je 0x5aab97
jmp 0x5aabc9
test ebx, ebx
je 0x5aabd5
mov eax, dword [esp]
cmp dword [eax + ebx*4 - 4], 0
jne 0x5aabd7
mov ecx, dword [esp]
dec ebx
mov eax, ebx
sub eax, 1
jb 0x5aabd5
cmp dword [ecx + ebx*4 - 4], 0
mov ebx, eax
je 0x5aabbb
inc eax
mov ebx, eax
jmp 0x5aabd7
xor ecx, ecx
jmp 0x5aac69
xor ebx, ebx
mov ecx, edx
add ecx, ebx
jb 0x5aa867
mov eax, dword [esp + 0x98]
and eax, 0xfffffffe
mov dword [esp + 0x10], eax
add eax, ebp
jb 0x5aa867
cmp esi, ecx
mov edx, dword [esp + 0x60]
movsd xmm0, qword [esp + 0x58]
cmova ecx, esi
cmp ecx, eax
cmovbe ecx, eax
sub ecx, edx
mov dword [esp + 0x44], edx
movsd qword [esp + 0x3c], xmm0
jb 0x5aa867
mov esi, ebx
mov ebx, dword [esp + 0x3c]
mov eax, ebx
sub eax, edx
cmp eax, ecx
jae 0x5aac9a
add edx, ecx
jb 0x5aae02
mov eax, edx
xor edx, edx
cmp eax, 0x20000000
mov dword [esp + 0x14], eax
lea eax, [eax*4]
setb dl
shl edx, 2
test ebx, ebx
je 0x5aabce
mov ecx, dword [esp + 0x40]
shl ebx, 2
mov dword [esp + 4], ecx
mov ecx, 4
mov dword [esp + 0xc], ebx
lea ebx, [esp + 4]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x18]
push ebx
push eax
call fcn.0059a2c0
add esp, 8
cmp dword [esp + 0x18], 1
je 0x5aae06
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
mov edx, dword [esp]
lea ebx, [esp + 0x3c]
mov ecx, ebx
push dword [esp + 0x24]
push esi
call fcn.005aa270
add esp, 8
mov ecx, ebx
mov edx, edi
push dword [esp + 0x10]
push ebp
call fcn.005aa270
add esp, 8
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x3c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x70]
movsd qword [ecx], xmm0
test eax, eax
je 0x5aaced
shl eax, 2
push 4
push eax
push edi
call fcn.004afc10
add esp, 0xc
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x34]
test eax, eax
je 0x5aad0b
shl eax, 2
push 4
push eax
push dword [esp + 8]
call fcn.004afc10
add esp, 0xc
mov eax, dword [esp + 0x50]
test eax, eax
je 0x5aad25
shl eax, 2
push 4
push eax
push dword [esp + 0x54]
call fcn.004afc10
add esp, 0xc
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5aa71f
shl eax, 2
push 4
push eax
push esi
call fcn.004afc10
add esp, 0x88
jmp 0x5aa722
lea ecx, [esp + 0x18]
xor edx, edx
push ebp
call fcn.006ec750
add esp, 4
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
cmp ebp, 1
lea eax, [ecx + ebx*4]
je 0x5aadaa
mov esi, ebx
not ebx
lea edi, [ebp - 2]
mov dword [esp + 0x10], ecx
cmp ebx, edi
mov ecx, edi
cmovb ecx, ebx
lea ecx, [ecx*4 + 4]
push ecx
push 0
push eax
call fcn.006547d0
add esp, 0xc
cmp edi, ebx
jae 0x5aa867
mov ecx, dword [esp + 0x10]
lea eax, [esi + ebp]
mov edi, dword [esp + 0x90]
lea ebx, [esi + ebp - 1]
lea eax, [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x98]
inc ebx
mov dword [eax], 0
je 0x5aa867
mov esi, dword [esp + 0x28]
jmp 0x5aa481
lea ecx, [esp + 4]
xor edx, edx
push edi
call fcn.006ec750
add esp, 4
mov ebp, dword [esp + 8]
mov edi, dword [esp + 0xc]
jmp 0x5aa4cd
lea ecx, [esp + 0x18]
mov edx, esi
push ebp
call fcn.006ec750
mov ecx, dword [esp + 0x9c]
add esp, 4
mov esi, dword [esp + 0x20]
jmp 0x5aa5a3
xor eax, eax
jmp 0x5aae0e
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.006fd2d0
int3