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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov dword [esp], ecx
mov esi, dword [esp + 0x74]
cmp dword [esp + 0x70], 0
je 0x487ff8
cmp dword [esp], esi
je 0x4881bd
cmp esi, dword [esp + 0x78]
je 0x4881bd
mov eax, dword [esp]
inc eax
cmp eax, esi
je 0x488012
lea eax, [esi + 1]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
je 0x488031
mov edi, esi
sub edi, dword [esp]
mov edx, ecx
sub edx, esi
cmp edi, edx
jne 0x488058
mov ebp, esi
not ebp
add ebp, ecx
mov edx, dword [esp]
mov ebx, edx
not ebx
add ebx, esi
cmp ebp, ebx
mov ecx, ebx
cmovb ecx, ebp
inc ecx
mov edi, esi
cmp ecx, 8
jb 0x48818f
cmp ebp, ebx
cmovb ebx, ebp
lea eax, [esi + ebx]
inc eax
cmp eax, dword [esp]
jbe 0x487f59
mov edx, dword [esp]
lea eax, [edx + ebx]
inc eax
mov edi, esi
cmp eax, esi
ja 0x48818f
xor ebx, ebx
cmp ecx, 0x20
jb 0x487fae
mov edx, ecx
mov ebx, ecx
and ebx, 0xffffffe0
xor eax, eax
mov ecx, dword [esp]
nop dword [eax]
movups xmm0, xmmword [ecx + eax]
movups xmm1, xmmword [ecx + eax + 0x10]
movups xmm2, xmmword [esi + eax]
movups xmm3, xmmword [esi + eax + 0x10]
movups xmmword [ecx + eax], xmm2
movups xmmword [ecx + eax + 0x10], xmm3
movups xmmword [esi + eax], xmm0
movups xmmword [esi + eax + 0x10], xmm1
add eax, 0x20
cmp ebx, eax
jne 0x487f70
cmp edx, ebx
je 0x4881bd
mov ecx, edx
test cl, 0x18
je 0x488185
mov ebp, ecx
mov eax, ecx
and eax, 0xfffffff8
lea edi, [esi + eax]
mov ecx, dword [esp]
lea edx, [ecx + eax]
mov ecx, dword [esp]
nop word cs:[eax + eax]
movsd xmm0, qword [ecx + ebx]
movsd xmm1, qword [esi + ebx]
movsd qword [ecx + ebx], xmm1
movsd qword [esi + ebx], xmm0
add ebx, 8
cmp eax, ebx
jne 0x487fd0
cmp ebp, eax
jne 0x48818f
jmp 0x4881bd
mov eax, dword [esp]
sub esi, eax
push dword [eax + 0x7c]
push dword [eax + 0x78]
push esi
push eax
call fcn.00464d10
add esp, 0x10
jmp 0x48860e
mov edi, dword [esp]
movzx ebx, byte [edi]
mov ebp, dword [esp + 0x78]
sub ebp, esi
push ebp
push esi
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov byte [edi + ebp], bl
jmp 0x4881bd
lea eax, [ecx - 1]
movzx ebx, byte [ecx - 1]
sub eax, dword [esp]
je 0x48804e
sub ecx, eax
push eax
mov eax, dword [esp + 4]
push eax
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov eax, dword [esp]
mov byte [eax], bl
jmp 0x4881bd
mov ebx, edi
nop word [eax + eax]
mov eax, ebx
mov ebx, edx
cdq
idiv ebx
test edx, edx
jne 0x488060
mov eax, dword [esp]
add eax, ebx
test bl, 1
mov ecx, dword [esp + 0x78]
jne 0x48807d
mov esi, eax
jmp 0x4880ce
lea esi, [eax - 1]
movzx edx, byte [eax - 1]
mov byte [esp + 4], dl
lea ebp, [eax + edi]
dec ebp
mov eax, esi
nop
mov dword [esp + 8], eax
mov eax, ebp
movzx edx, byte [ebp]
mov ebp, dword [esp + 8]
mov byte [ebp], dl
mov edx, ecx
sub edx, eax
mov ebp, edi
sub ebp, edx
lea edx, [eax + edi]
mov dword [esp + 8], edx
mov edx, ecx
mov ecx, esi
mov esi, dword [esp]
lea ebp, [esi + ebp]
mov esi, ecx
mov ecx, edx
cmovl ebp, dword [esp + 8]
cmp ebp, esi
jne 0x488090
movzx ecx, byte [esp + 4]
mov byte [eax], cl
cmp ebx, 1
je 0x4881bd
nop word [eax + eax]
lea ebx, [esi - 1]
movzx eax, byte [esi - 1]
mov byte [esp + 4], al
mov dword [esp + 8], esi
lea eax, [esi + edi]
dec eax
mov ebp, ebx
mov ecx, dword [esp + 0x78]
nop dword [eax]
mov edx, ebp
mov ebp, eax
movzx eax, byte [eax]
mov byte [edx], al
mov eax, ecx
sub eax, ebp
mov edx, edi
sub edx, eax
lea esi, [ebp + edi]
mov eax, dword [esp]
lea eax, [eax + edx]
cmovl eax, esi
cmp eax, ebx
jne 0x488100
movzx eax, byte [esp + 4]
mov byte [ebp], al
mov eax, dword [esp + 8]
lea edx, [eax - 2]
movzx ebx, byte [eax - 2]
mov byte [esp + 4], bl
lea ebp, [eax + edi]
add ebp, 0xfffffffe
mov eax, edx
nop word cs:[eax + eax]
mov esi, eax
mov eax, ebp
mov bh, byte [ebp]
mov byte [esi], bh
mov esi, ecx
sub esi, ebp
mov ebp, edi
sub ebp, esi
lea esi, [eax + edi]
mov ebx, dword [esp]
lea ebp, [ebx + ebp]
cmovl ebp, esi
cmp ebp, edx
jne 0x488150
movzx ecx, byte [esp + 4]
mov byte [eax], cl
mov esi, edx
cmp edx, dword [esp]
jne 0x4880e0
jmp 0x4881bd
mov eax, dword [esp]
lea edx, [eax + ebx]
add ebx, esi
mov edi, ebx
inc edi
inc edx
nop word cs:[eax + eax]
movzx eax, byte [edx - 1]
mov ah, byte [edi - 1]
mov byte [edx - 1], ah
mov byte [edi - 1], al
cmp edx, esi
je 0x4881bd
lea eax, [edi + 1]
inc edx
cmp edi, dword [esp + 0x78]
mov edi, eax
jne 0x4881a0
mov ecx, dword [esp]
mov edi, dword [ecx + 0x4c]
mov ebp, dword [ecx + 0x48]
mov eax, dword [ecx + 0x40]
add eax, ebp
mov esi, dword [ecx + 0x44]
adc esi, edi
mov edx, dword [ecx + 0x58]
mov dword [esp + 0x10], edx
add eax, edx
mov edx, dword [ecx + 0x5c]
mov dword [esp + 0x18], edx
adc esi, edx
mov edx, dword [ecx + 8]
mov dword [esp + 8], edx
add eax, edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 4], edx
adc esi, edx
mov ebx, esi
shld ebx, eax, 0x1b
shrd esi, eax, 5
mov edx, 0xbe98f273
mov eax, esi
mul edx
mov dword [esp + 0x24], eax
imul eax, esi, 0xb492b66f
add eax, edx
imul edx, ebx, 0xbe98f273
add edx, eax
mov ebx, edx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x14], eax
add ebp, eax
mov eax, dword [ecx + 0x64]
mov dword [esp + 0xc], eax
adc edi, eax
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x4c], eax
add ebp, eax
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x48], eax
adc edi, eax
mov esi, edi
shld esi, ebp, 0x16
shrd edi, ebp, 0xa
mov eax, edi
mov edx, 0xbe98f273
mul edx
imul edi, edi, 0xb492b66f
add edi, edx
imul edx, esi, 0xbe98f273
add edx, edi
mov edi, ecx
mov ecx, dword [ecx + 0x74]
mov dword [esp + 0x20], ecx
xor ebx, ecx
mov dword [esp + 0x2c], ebx
mov ecx, dword [edi + 0x70]
mov dword [esp + 0x1c], ecx
xor dword [esp + 0x24], ecx
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x44], ecx
add eax, ecx
mov dword [esp + 0x28], eax
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x40], ecx
adc edx, ecx
mov dword [esp + 0x10], edx
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], edx
mov ecx, dword [edi + 0x68]
mov esi, dword [edi + 0x50]
add esi, ecx
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x18], edx
mov ebx, dword [edi + 0x54]
adc ebx, edx
mov ebp, ebx
shrd ebx, esi, 1
mov eax, ebx
mov dword [esp + 0x58], ebx
mov edi, 0xbe98f273
mul edi
mov dword [esp + 0x34], eax
shld ebp, esi, 0x1f
mov dword [esp + 0x54], ebp
imul eax, ebx, 0xb492b66f
add eax, edx
imul edx, ebp, 0xbe98f273
add edx, eax
mov dword [esp + 0x30], edx
mov esi, dword [esp + 0x14]
mov eax, esi
mul edi
imul esi, esi, 0xb492b66f
add esi, edx
imul ebp, dword [esp + 0xc], 0xbe98f273
add ebp, esi
add ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
adc edx, dword [esp + 0x2c]
mov edi, dword [esp]
add eax, dword [edi]
mov dword [esp + 0xc], eax
adc ebp, dword [edi + 4]
add ecx, eax
adc edx, ebp
mov eax, dword [edi + 0x18]
mov dword [esp + 0x3c], eax
add ecx, eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x38], eax
mov ebx, edi
adc edx, eax
mov edi, ecx
shld edi, edx, 0xb
shld edx, ecx, 0xb
mov ecx, edx
mov esi, dword [esp + 8]
add esi, dword [esp + 0xc]
mov eax, dword [esp + 4]
adc eax, ebp
mov edx, dword [ebx + 0x10]
add esi, edx
mov dword [esp + 8], esi
mov ebx, dword [ebx + 0x14]
mov dword [esp + 0x14], ebx
adc eax, ebx
mov dword [esp + 4], eax
mov ebx, eax
shld ebx, esi, 0x14
mov eax, esi
mov esi, dword [esp + 4]
shld eax, esi, 0x14
add ecx, dword [esp + 0xc]
adc edi, ebp
add ecx, eax
mov eax, ecx
mov dword [esp + 0x18], ecx
adc edi, ebx
mov dword [esp + 0x50], edi
mov ebx, dword [esp + 8]
add ebx, dword [esp + 0x3c]
mov dword [esp + 8], ebx
adc esi, dword [esp + 0x38]
mov dword [esp + 4], esi
mov ecx, dword [esp]
mov dword [ecx + 0x60], eax
mov dword [ecx + 0x64], edi
mov dword [ecx + 0x58], ebx
mov dword [ecx + 0x5c], esi
mov esi, ecx
mov ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
adc eax, dword [esp + 0x30]
add edx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
adc edi, dword [esp + 0x10]
add ecx, dword [esi + 0x20]
adc eax, dword [esi + 0x24]
add edx, ecx
adc edi, eax
mov ebx, dword [esi + 0x38]
mov dword [esp + 0x20], ebx
add edx, ebx
mov esi, dword [esi + 0x3c]
mov dword [esp + 0x1c], esi
adc edi, esi
mov esi, edx
shld esi, edi, 0xb
mov dword [esp + 0xc], esi
shld edi, edx, 0xb
mov esi, edi
mov edi, dword [esp + 0x44]
add edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x40]
adc ebp, dword [esp + 0x48]
add edi, ecx
adc ebp, eax
mov edx, ebp
shld edx, edi, 0x14
mov ebx, edi
shld ebx, ebp, 0x14
add esi, ecx
mov ecx, dword [esp + 0xc]
adc ecx, eax
add esi, ebx
mov dword [esp + 0x14], esi
adc ecx, edx
mov dword [esp + 0xc], ecx
add edi, dword [esp + 0x20]
adc ebp, dword [esp + 0x1c]
mov eax, dword [esp + 8]
xor eax, edi
mov edx, 0xeb382d69
mov ebx, eax
mul edx
mov esi, eax
imul ebx, ebx, 0x9ddfea08
add ebx, edx
mov eax, dword [esp + 4]
xor eax, ebp
imul eax, eax, 0xeb382d69
add eax, ebx
mov ecx, dword [esp]
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x70], edx
mov edx, dword [esp + 0xc]
mov dword [ecx + 0x74], edx
mov dword [ecx + 0x68], edi
xor esi, edi
mov dword [ecx + 0x6c], ebp
xor ebp, eax
shr eax, 0xf
xor esi, eax
mov eax, esi
mov edi, 0xeb382d69
mul edi
imul ebx, ebp, 0xeb382d69
add ebx, edx
imul edx, esi, 0x9ddfea08
add ebx, edx
imul esi, ebx, 0xeb382d69
shr ebx, 0xf
xor ebx, eax
mov eax, ebx
mul edi
mov dword [esp + 4], eax
mov ebp, edx
mov eax, dword [esp + 0x70]
sub eax, ecx
add eax, dword [esp + 0x74]
mov dword [esp + 8], eax
add ebp, esi
mov eax, dword [esp + 0x10]
imul edi, eax, 0xbe98f273
shr eax, 0xf
xor eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov edx, 0xbe98f273
mul edx
mov esi, edx
imul edx, ebx, 0x9ddfea08
add ebp, edx
add esi, edi
imul edx, dword [esp + 0x10], 0xb492b66f
add esi, edx
mov edi, dword [esp + 0x24]
mov dword [ecx + 0x50], edi
mov edx, eax
add edx, edi
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x54], eax
adc esi, eax
add edx, dword [esp + 4]
mov dword [esp + 4], edx
adc esi, ebp
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
xor ecx, ebp
mov eax, ecx
mov edx, 0xeb382d69
mul edx
mov ebx, eax
imul eax, ecx, 0x9ddfea08
add eax, edx
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0xc]
xor ecx, edi
imul edx, ecx, 0xeb382d69
add edx, eax
xor ebx, ebp
xor edi, edx
shr edx, 0xf
xor ebx, edx
mov eax, ebx
mov ecx, 0xeb382d69
mul ecx
imul edi, edi, 0xeb382d69
add edi, edx
imul edx, ebx, 0x9ddfea08
add edi, edx
imul ebp, edi, 0xeb382d69
shr edi, 0xf
xor edi, eax
mov eax, edi
mul ecx
mov dword [esp + 0x10], eax
mov ebx, edx
add ebx, ebp
imul eax, edi, 0x9ddfea08
add ebx, eax
mov eax, dword [esp + 8]
add eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov ebp, dword [esp + 0x54]
adc ebp, 0
mov edx, 0xbe98f273
mul edx
mov edi, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x40], eax
imul eax, dword [esp + 8], 0xb492b66f
add eax, edx
imul ebp, ebp, 0xbe98f273
add ebp, eax
add edi, dword [esp + 0x10]
adc ebp, ebx
mov eax, dword [esp + 4]
xor eax, edi
mov ebx, eax
mov ecx, 0xeb382d69
mul ecx
mov ecx, eax
imul eax, ebx, 0x9ddfea08
add eax, edx
xor esi, ebp
imul edx, esi, 0xeb382d69
add edx, eax
xor ecx, edi
xor ebp, edx
shr edx, 0xf
xor ecx, edx
mov eax, ecx
mov edx, 0xeb382d69
mul edx
imul esi, ebp, 0xeb382d69
add esi, edx
imul ecx, ecx, 0x9ddfea08
add esi, ecx
shr esi, 0xf
xor esi, eax
imul eax, esi, 0xeb382d69
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret 0xc