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

Disassembly:
push edi
push esi
push ebp
push ebx
push ecx
mov eax, 0x60
call fcn.00602270
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x78]
mov edx, dword [eax]
lea ebp, [edx + eax]
movzx ebx, word [eax + 0xe]
cmp ebx, 1
je 0x5aee6d
cmp ebx, 4
je 0x5aee63
cmp ebx, 8
je 0x5aee59
cmp ebx, 0x10
je 0x5ae76d
cmp ebx, 0x18
je 0x5ae76d
cmp ebx, 0x20
je 0x5ae76d
mov eax, 1
add esp, 0x64
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
xor ecx, ecx
and edx, 0xffff
add edx, eax
add ecx, ecx
add ecx, ecx
and ecx, 0xffff
add edx, ecx
cmp ebx, 1
je 0x5aecf2
cmp ebx, 4
je 0x5aeb65
cmp ebx, 8
je 0x5aea64
cmp ebx, 0x10
je 0x5ae903
cmp ebx, 0x18
jne 0x5ae863
mov ebx, dword [eax + 4]
lea esi, [ebx + ebx]
add esi, ebx
lea ecx, [ebx + ebx*2 + 3]
sar ecx, 1
shr ecx, 0x1e
lea ebp, [ecx + esi + 3]
sar ebp, 2
add ebp, ebp
add ebp, ebp
sub ebp, esi
add esi, ebp
xor ebx, ebx
mov ecx, dword [eax + 8]
test ecx, ecx
jle 0x5ae8f7
neg ebp
add ebp, esi
mov edi, esi
neg edi
mov dword [esp + 4], edi
mov dword [esp], esi
mov dword [esp + 8], edx
xor esi, esi
test ebp, ebp
jle 0x5aea22
lea edi, [ebx + ebx]
mov edx, ebx
imul edx, dword [esp]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], ebp
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x80]
jmp 0x5ae823
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 8]
imul ecx, dword [esp]
add ecx, dword [esp + 4]
sub ecx, dword [esp + 0x10]
add ecx, esi
mov edx, dword [ebp + edi*2]
mov al, byte [ecx + ebx + 2]
mov byte [esi + edx], al
mov eax, dword [ebp + edi*2]
mov dl, byte [ecx + ebx + 1]
mov byte [esi + eax + 1], dl
mov eax, dword [ebp + edi*2]
mov cl, byte [ecx + ebx]
mov byte [esi + eax + 2], cl
add esi, 3
mov eax, dword [esp + 0x14]
cmp esi, eax
jl 0x5ae81c
jmp 0x5aea15
cmp ebx, 0x20
jne 0x5ae8f7
xor esi, esi
mov ebp, dword [eax + 8]
test ebp, ebp
jle 0x5ae8f7
mov ebx, dword [eax + 4]
mov dword [esp + 8], edx
xor ecx, ecx
xor edx, edx
test ebx, ebx
jle 0x5aea30
lea edi, [esi + esi]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
jmp 0x5ae8a0
mov eax, dword [esp + 0x78]
mov ebp, dword [eax + 8]
mov dword [esp + 0x34], ecx
sub ebp, dword [esp + 0x3c]
dec ebp
imul ebx, ebp
add ebx, ecx
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x80]
mov ecx, dword [ebp + esi*2]
mov edi, dword [esp + 8]
mov al, byte [edi + ebx*4 + 2]
mov byte [edx + ecx], al
mov eax, dword [ebp + esi*2]
mov cl, byte [edi + ebx*4 + 1]
mov byte [edx + eax + 1], cl
mov eax, dword [ebp + esi*2]
mov bl, byte [edi + ebx*4]
mov byte [edx + eax + 2], bl
add edx, 3
mov eax, dword [esp + 0x78]
mov ebx, dword [eax + 4]
mov ecx, dword [esp + 0x34]
inc ecx
cmp ecx, ebx
jl 0x5ae899
jmp 0x5aea3e
xor eax, eax
add esp, 0x64
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
mov edi, dword [eax + 4]
lea ecx, [edi + edi]
lea ebx, [edi + edi + 3]
sar ebx, 1
shr ebx, 0x1e
lea ebx, [ebx + edi*2 + 3]
sar ebx, 2
add ebx, ebx
add ebx, ebx
sub ebx, ecx
add ebx, ecx
xor esi, esi
mov ecx, dword [eax + 8]
test ecx, ecx
jle 0x5ae8f7
add ebx, 0x80000000
adc ebx, 0x80000000
sar ebx, 1
mov dword [esp + 0x10], ebx
mov dword [esp + 8], edx
mov ebp, dword [esp + 0x80]
xor edx, edx
xor ebx, ebx
test edi, edi
jle 0x5aea56
lea edi, [esi + esi]
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], esi
jmp 0x5ae967
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 8]
sub ecx, dword [esp + 0xc]
dec ecx
imul ecx, dword [esp + 0x10]
add ecx, edx
mov esi, dword [esp + 8]
movsx esi, word [esi + ecx*2]
lea eax, [esp + 0x44]
mov ecx, 0x7561d0
mov edi, dword [ecx]
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx + 8]
mov dword [eax + 8], edi
mov edi, dword [ecx + 0xc]
mov dword [eax + 0xc], edi
mov edi, dword [ecx + 0x10]
mov dword [eax + 0x10], edi
mov edi, dword [ecx + 0x14]
mov dword [eax + 0x14], edi
mov edi, dword [ecx + 0x18]
mov dword [eax + 0x18], edi
mov edi, dword [ecx + 0x1c]
mov dword [eax + 0x1c], edi
mov dword [esp + 0x3c], edx
mov eax, esi
shl eax, 0x11
sar eax, 0x1b
movsx ecx, ax
mov eax, esi
shl eax, 0x16
sar eax, 0x1b
movsx edx, ax
shl esi, 0x1b
sar esi, 0x1b
movsx eax, si
mov al, byte [esp + eax + 0x44]
mov dl, byte [esp + edx + 0x44]
mov esi, dword [esp + 0x14]
mov edi, dword [ebp + esi*2]
mov cl, byte [esp + ecx + 0x44]
mov byte [ebx + edi], cl
mov ecx, dword [ebp + esi*2]
mov byte [ebx + ecx + 1], dl
mov edx, dword [ebp + esi*2]
mov byte [ebx + edx + 2], al
mov edx, dword [esp + 0x3c]
inc edx
add ebx, 3
mov eax, dword [esp + 0x78]
mov edi, dword [eax + 4]
cmp edx, edi
jl 0x5ae960
jmp 0x5aea4b
mov ebx, dword [esp + 0xc]
mov ebp, eax
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 8]
inc ebx
cmp ebx, ecx
jl 0x5ae7f0
jmp 0x5ae8f7
inc esi
cmp esi, ebp
jl 0x5ae880
jmp 0x5ae8f7
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x78]
mov ebp, dword [eax + 8]
jmp 0x5aea30
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 8]
inc esi
cmp esi, ecx
jl 0x5ae947
jmp 0x5ae8f7
mov ecx, dword [eax + 4]
lea ebx, [ecx + 3]
sar ebx, 1
shr ebx, 0x1e
lea edi, [ebx + ecx + 3]
sar edi, 2
add edi, edi
add edi, edi
sub edi, ecx
xor esi, esi
mov ebx, dword [eax + 8]
test ebx, ebx
jle 0x5ae8f7
mov dword [esp + 0x14], edi
mov dword [esp + 8], edx
mov dword [esp + 0x10], ebp
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x5aeb57
lea ebp, [esi + esi]
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 0xc], esi
jmp 0x5aeab8
mov eax, dword [esp + 0x78]
mov ebx, dword [eax + 8]
sub ebx, dword [esp + 0xc]
dec ebx
add ecx, dword [esp + 0x14]
imul ecx, ebx
add ecx, dword [esp]
mov esi, dword [esp + 8]
xor eax, eax
mov al, byte [ecx + esi]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x80]
mov ebx, dword [edi + eax*2]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov al, byte [ebp + eax*4 + 2]
mov byte [edx + ebx], al
mov eax, esi
movzx eax, byte [ecx + eax]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 4]
mov esi, dword [eax + ebx*2]
mov eax, dword [esp + 0x3c]
mov bl, byte [ebp + eax*4 + 1]
mov byte [edx + esi + 1], bl
mov eax, dword [esp + 8]
movzx ecx, byte [ecx + eax]
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 4]
mov ebx, dword [eax + ebx*2]
mov al, byte [ebp + ecx*4]
mov byte [edx + ebx + 2], al
add edx, 3
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 4]
mov eax, dword [esp]
inc eax
mov dword [esp], eax
cmp eax, ecx
jl 0x5aeab1
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x78]
mov ebx, dword [eax + 8]
inc esi
cmp esi, ebx
jl 0x5aea95
jmp 0x5ae8f7
mov ebx, dword [eax + 4]
lea ecx, [ebx + 1]
shr ecx, 0x1f
lea ecx, [ebx + ecx + 1]
sar ecx, 1
lea esi, [ecx + 3]
sar esi, 1
shr esi, 0x1e
lea edi, [esi + ecx + 3]
sar edi, 2
add edi, edi
add edi, edi
sub edi, ecx
add edi, ecx
lea esi, [ecx + ecx]
sub esi, ebx
neg esi
add esi, 2
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov ebx, dword [eax + 8]
mov dword [esp + 0x34], ebx
test ebx, ebx
jle 0x5ae8f7
mov ebx, edi
neg ebx
mov dword [esp + 0x38], ebx
lea ebx, [ecx - 1]
mov dword [esp + 0x3c], ebx
mov dword [esp], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], edx
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
xor eax, eax
xor esi, esi
test ecx, ecx
jle 0x5aece4
lea ebx, [ebp + ebp]
mov edi, ebp
imul edi, dword [esp + 0xc]
mov dword [esp + 4], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0xc]
imul ebp, edx
add ebp, dword [esp + 0x38]
sub ebp, dword [esp + 4]
add ebp, eax
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jge 0x5aec1f
mov esi, 2
jmp 0x5aec22
mov esi, dword [esp]
xor edi, edi
test esi, esi
jle 0x5aecd3
lea ecx, [edi + edi]
add ecx, ecx
lea edx, [edi + edi]
add edx, edx
neg edx
add edx, 4
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 8]
movzx eax, byte [eax + ebx]
shl eax, cl
and eax, 0xff
mov ecx, edx
sar eax, cl
and eax, 0xff
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x80]
mov ebx, dword [esi + edi*2]
mov ecx, dword [esp + 0x10]
mov dl, byte [ecx + eax*4 + 2]
mov byte [ebp + ebx], dl
mov edx, dword [esi + edi*2]
mov bl, byte [ecx + eax*4 + 1]
mov byte [ebp + edx + 1], bl
mov edx, dword [esi + edi*2]
mov al, byte [ecx + eax*4]
mov byte [ebp + edx + 2], al
add ebp, 3
mov ecx, dword [esp + 0x34]
add ecx, 4
mov edx, dword [esp + 0x40]
add edx, 0xfffffffc
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
jl 0x5aec4f
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x78]
mov edx, dword [ebx + 8]
inc eax
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jl 0x5aebff
mov ebp, dword [esp + 0x1c]
inc ebp
cmp ebp, edx
jl 0x5aebd0
jmp 0x5ae8f7
mov ecx, dword [eax + 4]
lea ebx, [ecx + 7]
sar ebx, 2
shr ebx, 0x1d
lea ebx, [ebx + ecx + 7]
sar ebx, 3
lea esi, [ebx + 3]
sar esi, 1
shr esi, 0x1e
lea edi, [esi + ebx + 3]
sar edi, 2
add edi, edi
add edi, edi
sub edi, ebx
add edi, ebx
lea esi, [ebx + ebx]
add esi, esi
add esi, esi
sub esi, ecx
neg esi
add esi, 8
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 8]
mov dword [esp], ecx
test ecx, ecx
jle 0x5ae8f7
mov ecx, edi
neg ecx
mov dword [esp + 0x34], ecx
lea ecx, [ebx - 1]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edi
mov dword [esp + 8], edx
mov dword [esp + 0x10], ebp
mov edx, dword [esp]
mov edi, dword [esp + 0x20]
xor eax, eax
xor esi, esi
test ebx, ebx
jle 0x5aee4b
lea ecx, [edi + edi]
mov ebp, edi
imul ebp, dword [esp + 0x30]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0x30]
imul ebp, edx
add ebp, dword [esp + 0x34]
sub ebp, dword [esp + 0x2c]
add ebp, eax
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jge 0x5aedae
mov edi, 8
jmp 0x5aedb2
mov edi, dword [esp + 0x28]
xor ecx, ecx
test edi, edi
jle 0x5aee3e
mov dword [esp + 4], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 8]
movzx eax, byte [eax + ebx]
shl eax, cl
and eax, 0xff
sar eax, 7
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x80]
mov ecx, dword [ebp + esi*2]
mov edi, dword [esp + 0x10]
mov bl, byte [edi + eax*4 + 2]
mov byte [edx + ecx], bl
mov ebx, dword [ebp + esi*2]
mov cl, byte [edi + eax*4 + 1]
mov byte [edx + ebx + 1], cl
mov ecx, dword [ebp + esi*2]
mov al, byte [edi + eax*4]
mov byte [edx + ecx + 2], al
add edx, 3
mov ecx, dword [esp + 0x40]
inc ecx
mov eax, dword [esp + 4]
cmp ecx, eax
jl 0x5aedd0
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x78]
mov edx, dword [esi + 8]
inc eax
cmp eax, ebx
jl 0x5aed8e
mov edi, dword [esp + 0x20]
inc edi
cmp edi, edx
jl 0x5aed64
jmp 0x5ae8f7
mov ecx, 0x100
jmp 0x5ae76f
mov ecx, 0x10
jmp 0x5ae76f
mov ecx, 2
jmp 0x5ae76f