Function at 0x10059af0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x10150380]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov eax, ecx
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp + 0x10]
mov ebx, edx
sub ebx, ecx
mov dword [ebp - 0x14], eax
cmp dword [ebp + 8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ebx
movlpd qword [ebp - 0xc], xmm0
mov dword [ebp - 0x24], 0
jle 0x10059d35
push edi
mov edi, ecx
lea edx, [ecx - 2]
sub edi, eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x10], edi
push esi
nop
push ecx
lea eax, [ebp - 0xc]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x28]
add esp, 0xc
xor esi, esi
cmp eax, 3
ja case.default.0x10059b5d
jmp dword [eax*4 + 0x10059d44]
xor ecx, ecx
test ebx, ebx
js 0x10059cdf
mov edi, dword [ebp - 0x14]
mov bl, byte [edi]
mov eax, ecx
and eax, 7
movzx edx, bl
inc ecx
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
mov eax, dword [ebp - 0x10]
add eax, edi
add esi, edx
and eax, 7
mov byte [ebp + eax - 0xc], bl
mov eax, esi
mov ebx, dword [ebp - 0x18]
shr eax, 1
mov byte [edi], al
inc edi
cmp ecx, ebx
jle 0x10059b71
mov edi, dword [ebp - 0x10]
jmp 0x10059cdf
xor ecx, ecx
test ebx, ebx
js 0x10059cdf
mov edx, dword [ebp - 0x14]
mov eax, edx
mov dword [ebp - 0x10], edx
nop dword [eax]
mov bl, byte [eax]
mov eax, ecx
and eax, 7
movzx edx, bl
inc ecx
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
mov eax, dword [ebp - 0x10]
add eax, edi
add esi, edx
and eax, 7
mov byte [ebp + eax - 0xc], bl
mov eax, 0xaaaaaaab
mov ebx, dword [ebp - 0x18]
mul esi
mov eax, dword [ebp - 0x10]
shr edx, 1
mov byte [eax], dl
inc eax
mov dword [ebp - 0x10], eax
cmp ecx, ebx
jle 0x10059bc0
jmp 0x10059cdf
xor ecx, ecx
test ebx, ebx
js 0x10059cdf
mov edi, dword [ebp - 0x14]
nop dword [eax + eax]
mov bl, byte [edi]
mov eax, ecx
and eax, 7
movzx edx, bl
inc ecx
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
mov eax, dword [ebp - 0x10]
add eax, edi
add esi, edx
and eax, 7
mov byte [ebp + eax - 0xc], bl
mov eax, esi
mov ebx, dword [ebp - 0x18]
shr eax, 2
mov byte [edi], al
inc edi
cmp ecx, ebx
jle 0x10059c10
mov edi, dword [ebp - 0x10]
jmp 0x10059cdf
xor ecx, ecx
test ebx, ebx
js 0x10059cdf
mov edx, dword [ebp - 0x14]
mov eax, edx
mov dword [ebp - 0x10], edx
nop dword [eax]
mov bl, byte [eax]
mov eax, ecx
and eax, 7
movzx edx, bl
inc ecx
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
mov eax, dword [ebp - 0x10]
add eax, edi
add esi, edx
and eax, 7
mov byte [ebp + eax - 0xc], bl
mov eax, 0xcccccccd
mov ebx, dword [ebp - 0x18]
mul esi
mov eax, dword [ebp - 0x10]
shr edx, 2
mov byte [eax], dl
inc eax
mov dword [ebp - 0x10], eax
cmp ecx, ebx
jle 0x10059c60
jmp 0x10059cdf
xor ecx, ecx
test ebx, ebx
js 0x10059cdf
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
mov bl, byte [edx]
mov eax, ecx
and eax, 7
movzx edx, bl
inc ecx
movzx eax, byte [ebp + eax - 0xc]
sub edx, eax
mov eax, dword [ebp - 0x10]
add eax, edi
add esi, edx
and eax, 7
xor edx, edx
mov byte [ebp + eax - 0xc], bl
mov eax, esi
div dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x18]
mov byte [edx], al
inc edx
mov dword [ebp - 0x10], edx
cmp ecx, ebx
jle 0x10059ca8
cmp ecx, dword [ebp - 0x20]
jge 0x10059d0c
mov eax, dword [ebp - 0x14]
cmp byte [eax + ecx], 0
jne 0x10059d2b
mov eax, ecx
xor edx, edx
and eax, 7
movzx eax, byte [ebp + eax - 0xc]
sub esi, eax
mov eax, esi
div dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov byte [edx + ecx], al
inc ecx
cmp ecx, dword [ebp - 0x20]
jl 0x10059ce4
mov eax, dword [ebp + 0xc]
sub edi, eax
add dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp + 8]
jge 0x10059d33
mov ecx, dword [ebp - 0x1c]
jmp 0x10059b40
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.1010fe2d
mov esp, ebp
pop ebp
ret