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

Disassembly:
push edi
push esi
push ebp
push ebx
push ecx
mov eax, 0x60
call fcn.006021b0
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 0x5aeda5
cmp ebx, 4
je 0x5aed9b
cmp ebx, 8
je 0x5aed91
cmp ebx, 0x10
je 0x5ae6a5
cmp ebx, 0x18
je 0x5ae6a5
cmp ebx, 0x20
je 0x5ae6a5
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 0x5aec2a
cmp ebx, 4
je 0x5aea9d
cmp ebx, 8
je 0x5ae99c
cmp ebx, 0x10
je 0x5ae83b
cmp ebx, 0x18
jne 0x5ae79b
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 0x5ae82f
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 0x5ae95a
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 0x5ae75b
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 0x5ae754
jmp 0x5ae94d
cmp ebx, 0x20
jne 0x5ae82f
xor esi, esi
mov ebp, dword [eax + 8]
test ebp, ebp
jle 0x5ae82f
mov ebx, dword [eax + 4]
mov dword [esp + 8], edx
xor ecx, ecx
xor edx, edx
test ebx, ebx
jle 0x5ae968
lea edi, [esi + esi]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
jmp 0x5ae7d8
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 0x5ae7d1
jmp 0x5ae976
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 0x5ae82f
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 0x5ae98e
lea edi, [esi + esi]
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], esi
jmp 0x5ae89f
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 0x5ae898
jmp 0x5ae983
mov ebx, dword [esp + 0xc]
mov ebp, eax
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 8]
inc ebx
cmp ebx, ecx
jl 0x5ae728
jmp 0x5ae82f
inc esi
cmp esi, ebp
jl 0x5ae7b8
jmp 0x5ae82f
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x78]
mov ebp, dword [eax + 8]
jmp 0x5ae968
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 8]
inc esi
cmp esi, ecx
jl 0x5ae87f
jmp 0x5ae82f
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 0x5ae82f
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 0x5aea8f
lea ebp, [esi + esi]
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 0xc], esi
jmp 0x5ae9f0
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 0x5ae9e9
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x78]
mov ebx, dword [eax + 8]
inc esi
cmp esi, ebx
jl 0x5ae9cd
jmp 0x5ae82f
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 0x5ae82f
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 0x5aec1c
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 0x5aeb57
mov esi, 2
jmp 0x5aeb5a
mov esi, dword [esp]
xor edi, edi
test esi, esi
jle 0x5aec0b
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 0x5aeb87
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 0x5aeb37
mov ebp, dword [esp + 0x1c]
inc ebp
cmp ebp, edx
jl 0x5aeb08
jmp 0x5ae82f
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 0x5ae82f
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 0x5aed83
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 0x5aece6
mov edi, 8
jmp 0x5aecea
mov edi, dword [esp + 0x28]
xor ecx, ecx
test edi, edi
jle 0x5aed76
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 0x5aed08
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 0x5aecc6
mov edi, dword [esp + 0x20]
inc edi
cmp edi, edx
jl 0x5aec9c
jmp 0x5ae82f
mov ecx, 0x100
jmp 0x5ae6a7
mov ecx, 0x10
jmp 0x5ae6a7
mov ecx, 2
jmp 0x5ae6a7