Function at 0x4e9aa0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x78
mov eax, dword [ebp + 0x14]
mov ebx, ecx
mov edi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov dword [esp + 8], edx
mov esi, dword [ebp + 8]
mov byte [esp + 0x20], 0x30
mov dword [esp + 0x1c], 0x30303030
mov dword [esp + 0x18], 0x30303030
mov edx, dword [ebx + 8]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], ecx
call 0x4e9aee
pop ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4e9cb1
mov ebx, dword [ebx + 0xc]
test edx, edx
mov ecx, 9
cmovne ecx, ebx
mov dword [esp + 0x28], ebx
test ecx, ecx
mov dword [esp + 4], ecx
je 0x4e9cbc
mov ecx, dword [ebp + 0x10]
xor edx, edx
div ecx
add al, 0x30
mov ebx, edx
mov edx, 0xcccccccd
mov byte [esp + 0x18], al
mov eax, ecx
mul edx
test ebx, ebx
je 0x4e9cdd
mov dword [esp], ebx
shr edx, 3
cmp dword [esp + 4], 1
mov ebx, dword [esp + 8]
je 0x4e9c9b
cmp ecx, 0xa
jb 0x4ea19c
mov eax, dword [esp]
mov esi, edx
xor edx, edx
div esi
add al, 0x30
mov esi, edx
mov edx, 0x51eb851f
mov byte [esp + 0x19], al
mov eax, ecx
mov dword [esp], esi
mul edx
test esi, esi
je 0x4e9d91
shr edx, 5
cmp dword [esp + 4], 2
je 0x4e9c98
mov ecx, dword [ebp + 0x10]
cmp ecx, 0x64
jb 0x4ea19c
mov eax, dword [esp]
mov esi, edx
xor edx, edx
div esi
add al, 0x30
mov esi, edx
mov edx, 0x10624dd3
mov byte [esp + 0x1a], al
mov eax, ecx
mov dword [esp], esi
mul edx
test esi, esi
je 0x4ea09e
shr edx, 6
cmp dword [esp + 4], 3
je 0x4e9c98
mov ecx, dword [ebp + 0x10]
cmp ecx, 0x3e8
jb 0x4ea19c
mov eax, dword [esp]
mov esi, edx
xor edx, edx
div esi
add al, 0x30
mov esi, edx
mov edx, 0xd1b71759
mov byte [esp + 0x1b], al
mov eax, ecx
mov dword [esp], esi
mul edx
test esi, esi
je 0x4ea0ab
shr edx, 0xd
cmp dword [esp + 4], 4
je 0x4e9c98
mov ecx, dword [ebp + 0x10]
cmp ecx, 0x2710
jb 0x4ea19c
mov eax, dword [esp]
mov esi, edx
xor edx, edx
div esi
add al, 0x30
mov esi, edx
mov byte [esp + 0x1c], al
mov eax, ecx
mov ecx, 0xa7c5ac5
mov dword [esp], esi
shr eax, 5
mul ecx
test esi, esi
je 0x4ea0b8
shr edx, 7
cmp dword [esp + 4], 5
je 0x4e9c98
mov ecx, dword [ebp + 0x10]
cmp ecx, 0x186a0
jb 0x4ea19c
mov eax, dword [esp]
mov esi, edx
xor edx, edx
div esi
add al, 0x30
mov esi, edx
mov edx, 0x431bde83
mov byte [esp + 0x1d], al
mov eax, ecx
mov dword [esp], esi
mul edx
test esi, esi
je 0x4ea0c5
shr edx, 0x12
cmp dword [esp + 4], 6
jne 0x4ea0d2
mov esi, dword [ebp + 8]
lea ecx, [edx + edx*4]
mov eax, dword [esp + 4]
cmp dword [esp], ecx
mov dword [esp + 0x2c], eax
jae 0x4e9d17
mov edx, dword [esp + 0x28]
jmp 0x4e9cea
mov eax, dword [ebx + 0xc]
xor edx, edx
mov dword [esp + 0x28], eax
jmp 0x4e9ce2
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esp + 8]
xor edx, edx
mov dword [esp + 0x2c], 0
lea esi, [ecx + ecx*4]
cmp esi, eax
jbe 0x4e9d60
mov esi, dword [ebp + 8]
jmp 0x4e9cea
mov edx, 1
mov ebx, dword [esp + 8]
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0xc], 0
jmp 0x4e9dc9
mov eax, dword [esp + 0x28]
mov edi, 0x30
mov dword [esp + 0x24], esi
dec eax
nop word cs:[eax + eax]
nop
movzx edx, byte [esp + eax + 0x18]
mov esi, eax
mov ebx, edx
inc bl
add eax, 0xffffffff
setb bh
cmp dl, 0x39
movzx ecx, bl
cmovae ecx, edi
mov byte [esp + esi + 0x18], cl
jb 0x4e9d54
test bh, bh
jne 0x4e9d30
mov ebx, dword [esp + 8]
mov edi, dword [ebp + 0x1c]
cmp dl, 0x38
jbe 0x4e9d9e
mov eax, dword [ebp + 8]
add ebx, 1
adc eax, 0
jae 0x4e9d83
mov al, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], eax
jmp 0x4e9dc1
mov dword [esp + 8], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x24], eax
jmp 0x4e9da5
mov esi, dword [ebp + 8]
mov edx, 2
jmp 0x4e9ce6
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
lea eax, [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov esi, 9
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x2c]
cmp ebx, 9
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x54]
cmovb esi, ebx
test ecx, ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x10]
cmove esi, edx
mov dword [esp + 0x48], esi
cmp dword [eax], 0
je 0x4e9f84
mov dword [esp + 4], edx
mov edx, dword [ebp + 0x20]
xor ebx, ebx
test edx, edx
je 0x4e9ede
cmp edx, 8
mov eax, 0
jb 0x4e9ebe
movdqa xmm2, xmmword [0x569b70]
movdqa xmm3, xmmword [0x5656d0]
mov eax, edx
lea ebx, [edi + 4]
pxor xmm0, xmm0
pxor xmm1, xmm1
and eax, 0xfffffff8
mov edx, eax
nop
movd xmm5, dword [ebx - 4]
movd xmm4, dword [ebx]
add ebx, 8
add edx, 0xfffffff8
pcmpgtb xmm5, xmm2
pcmpgtb xmm4, xmm2
punpcklbw xmm5, xmm5
punpcklwd xmm5, xmm5
pand xmm5, xmm3
paddd xmm0, xmm5
punpcklbw xmm4, xmm4
punpcklwd xmm4, xmm4
pand xmm4, xmm3
paddd xmm1, xmm4
jne 0x4e9e60
paddd xmm1, xmm0
mov edx, dword [ebp + 0x20]
mov ecx, dword [esp + 0x14]
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
cmp eax, edx
movd ebx, xmm1
je 0x4e9ede
sub edx, eax
add edi, eax
nop word cs:[eax + eax]
nop dword [eax]
xor eax, eax
cmp byte [edi], 0xc0
setge al
inc edi
add ebx, eax
dec edx
jne 0x4e9ed0
mov edi, dword [esp + 0x10]
add ebx, dword [ebp + 0x18]
cmp byte [esp + 0xc], 0
mov edx, dword [esp + 4]
mov eax, dword [edi + 4]
mov dword [esp], eax
mov eax, 0x14
jne 0x4e9fc7
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x24]
or eax, edi
je 0x4e9f88
mov eax, dword [esp + 8]
mov ecx, edi
mov edx, edi
shr edx, 0xa
mov dword [esp + 0xc], edx
shld ecx, eax, 0x16
mov dword [esp + 0x40], ecx
push 2
push 0x540be400
push edi
push eax
call fcn.004fcee0
mov ecx, 0x9502f8
mov dword [esp + 0x24], edi
mov edi, 0
cmp ecx, dword [esp + 0x40]
mov ecx, 0
sbb ecx, dword [esp + 0xc]
mov ecx, 0xa
cmovae edx, dword [esp + 0x24]
cmovae eax, dword [esp + 8]
cmovae ecx, edi
mov dword [esp + 0xc], ecx
cmp eax, 0x186a0
mov ecx, edx
sbb ecx, 0
jb 0x4e9f93
push 0
push 0x186a0
push edx
push eax
call fcn.004fcee0
mov edi, dword [esp + 0xc]
or edi, 5
jmp 0x4e9f97
mov edx, eax
jmp 0x4e9ffd
mov edi, dword [esp + 0x10]
mov eax, 1
jmp 0x4e9fc7
mov edi, dword [esp + 0xc]
lea ecx, [eax + 0x5fff6]
lea edx, [eax + 0x7ff9c]
and ecx, edx
lea edx, [eax + 0xdfc18]
add eax, 0x7d8f0
and eax, edx
mov edx, dword [esp + 4]
xor eax, ecx
mov ecx, dword [esp + 0x14]
shr eax, 0x11
lea eax, [edi + eax + 1]
mov edi, dword [esp + 0x10]
add ebx, eax
mov eax, dword [esp + 0x28]
test ecx, ecx
mov ecx, dword [esp]
cmove eax, edx
test esi, esi
lea eax, [eax + ebx + 1]
cmove eax, ebx
sub ecx, eax
jbe 0x4e9ffb
movzx eax, byte [edi + 0x20]
mov edx, dword [esp + 0x44]
xor esi, esi
add edx, dword [eax*4 + 0x4ea1b0]
jmp edx
mov edx, edi
lea ecx, [esp + 0x5c]
call fcn.004ea1c0
jmp 0x4ea096
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [ebp + 8]
mov edx, 3
jmp 0x4e9ce6
mov esi, dword [ebp + 8]
mov edx, 4
jmp 0x4e9ce6
mov esi, dword [ebp + 8]
mov edx, 5
jmp 0x4e9ce6
mov esi, dword [ebp + 8]
mov edx, 6
jmp 0x4e9ce6
mov eax, dword [ebp + 0x10]
cmp eax, 0xf4240
jb 0x4ea19c
mov esi, edx
xor edx, edx
mov eax, dword [esp]
mov ecx, 0x6b5fca6b
div si
add al, 0x30
mov esi, edx
mov byte [esp + 0x1e], al
mov eax, dword [ebp + 0x10]
mul ecx
test si, si
je 0x4ea113
shr edx, 0x16
cmp dword [esp + 4], 7
jne 0x4ea120
movzx eax, si
mov esi, dword [ebp + 8]
jmp 0x4ea162
mov esi, dword [ebp + 8]
mov edx, 7
jmp 0x4e9ce6
mov eax, dword [ebp + 0x10]
cmp eax, 0x989680
jb 0x4ea19c
mov ecx, esi
mov esi, edx
xor edx, edx
mov eax, ecx
mov ecx, 0x55e63b89
div si
add al, 0x30
mov esi, edx
mov byte [esp + 0x1f], al
mov eax, dword [ebp + 0x10]
mul ecx
test si, si
je 0x4ea16a
shr edx, 0x19
cmp dword [esp + 4], 8
mov eax, esi
mov esi, edx
jne 0x4ea177
mov edx, esi
mov esi, dword [ebp + 8]
movzx eax, ax
mov dword [esp], eax
jmp 0x4e9c9b
mov esi, dword [ebp + 8]
mov edx, 8
jmp 0x4e9ce6
cmp dword [ebp + 0x10], 0x5f5e100
jb 0x4ea19c
xor edx, edx
div si
mov esi, dword [ebp + 8]
mov edx, 9
add al, 0x30
mov dword [esp + 0x2c], edx
mov byte [esp + 0x20], al
jmp 0x4e9cea
push 0x56b6a8
push 0x19
push str.attempt_to_divide_by_zero
call fcn.005005f0
nop dword [eax]
and al, 5
add byte [eax], al
pop es
add eax, 0x51d0000
add byte [eax], al
and al, 5
add byte [eax], al