Function at 0x404500
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [0x521280]
xor edx, esp
mov dword [esp + 0x38], edx
xorps xmm0, xmm0
movups xmmword [esp + 0x28], xmm0
lea edx, [ecx + 0x37]
shr edx, 5
lea esi, [edx - 1]
and ecx, 0x1f
mov edi, eax
shl edi, cl
cmp ecx, 9
jb 0x404542
mov dword [esp + edx*4 + 0x20], edi
neg cl
shr eax, cl
mov edi, eax
mov dword [esp + edx*4 + 0x24], edi
test esi, esi
je 0x40462b
mov dword [esp], 0
mov ebp, 0xa09b5a53
jmp 0x40456b
mov esi, dword [esp + 8]
mov dword [esp], ebx
mov edi, dword [esp + esi*4 + 0x28]
mov eax, edi
shr eax, 9
mov ecx, 0x44b83
mul ecx
shr edx, 7
imul eax, edx, 0x3b9aca00
mov dword [esp + 0xc], edi
mov ecx, edi
sub ecx, eax
mov dword [esp + esi*4 + 0x28], edx
mov dword [esp + 8], esi
mov ebx, esi
nop word cs:[eax + eax]
mov eax, dword [esp + ebx*4 + 0x24]
mov dword [esp + 4], eax
mov esi, ecx
shld esi, eax, 0x17
mov eax, esi
mul ebp
mov edi, edx
mov eax, esi
mov edx, 0x44b82f
mul edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
shr ecx, 9
mov eax, ecx
mul ebp
mov esi, edx
mov ebp, eax
mov eax, ecx
mov ecx, 0x44b82f
mul ecx
add ebp, edi
adc esi, 0
add esi, eax
adc edx, 0
add ebp, dword [esp + 0x10]
mov ebp, 0xa09b5a53
adc esi, dword [esp + 0x14]
adc edx, 0
shld edx, esi, 0x15
imul ecx, edx, 0xc4653600
add ecx, dword [esp + 4]
mov dword [esp + ebx*4 + 0x24], edx
dec ebx
jne 0x4045a0
mov ebx, dword [esp]
mov dword [esp + ebx*4 + 0x18], ecx
inc ebx
cmp dword [esp + 0xc], 0x3b9ac9ff
ja 0x404560
mov esi, dword [esp + 8]
dec esi
jne 0x404564
jmp 0x40462d
xor ebx, ebx
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x28]
mov esi, 0xa
cmp ecx, 0x3b9ac9ff
ja 0x4046a5
mov esi, 9
cmp ecx, 0x5f5e0ff
ja 0x4046a5
mov esi, 8
cmp ecx, 0x98967f
ja 0x4046a5
mov esi, 7
cmp ecx, 0xf423f
ja 0x4046a5
mov esi, 6
cmp ecx, 0x1869f
ja 0x4046a5
mov esi, 5
cmp ecx, 0x270f
ja 0x4046a5
mov esi, 4
cmp ecx, 0x3e7
ja 0x4046a5
mov esi, 3
cmp ecx, 0x63
ja 0x4046a5
cmp ecx, 0xa
mov esi, 1
sbb esi, 0xffffffff
lea eax, [ebx + ebx*8]
add eax, esi
mov edx, edi
sub edx, dword [esp + 0x50]
mov ebp, 0x84
cmp edx, eax
jl 0x40487f
xor ebp, ebp
cmp ecx, 0x2710
jae 0x4046f5
cmp ecx, 0x64
jae 0x40476f
cmp ecx, 0xa
jb 0x4047a8
mov edx, dword [esp + 0x50]
lea eax, [edx + esi]
sub eax, ebp
mov ebp, edx
movzx ecx, word [ecx + ecx + 0x4fce48]
mov word [eax - 2], cx
jmp 0x4047b2
mov dword [esp], ebx
mov eax, dword [esp + 0x50]
mov dword [esp + 4], esi
lea ebx, [esi + eax]
add ebx, 0xfffffffe
xor ebp, ebp
nop dword [eax + eax]
mov esi, ecx
mov eax, ecx
mov ecx, 0xd1b71759
mul ecx
mov ecx, edx
shr ecx, 0xd
imul edi, ecx, 0xffffd8f0
add edi, esi
mov eax, edi
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul eax, edx, 0x64
sub edi, eax
movzx eax, word [edi + edi + 0x4fce48]
mov word [ebx + ebp], ax
movzx eax, word [edx + edx + 0x4fce48]
mov word [ebx + ebp - 2], ax
add ebp, 0xfffffffc
cmp esi, 0x5f5e0ff
ja 0x404710
neg ebp
mov ebx, dword [esp]
mov esi, dword [esp + 4]
cmp ecx, 0x64
jb 0x4046d0
movzx eax, cx
shr eax, 2
imul eax, eax, 0x147b
shr eax, 0x11
imul edx, eax, 0x64
sub ecx, edx
movzx ecx, cx
mov edx, dword [esp + 0x50]
add edx, esi
sub edx, ebp
movzx ecx, word [ecx + ecx + 0x4fce48]
mov word [edx - 2], cx
or ebp, 2
mov ecx, eax
cmp ecx, 0xa
jae 0x4046d9
add cl, 0x30
mov ebp, dword [esp + 0x50]
mov byte [ebp], cl
add ebp, esi
test ebx, ebx
jle 0x40487b
inc ebx
jmp 0x4047df
mov byte [ebp + 8], 0x30
mov dword [ebp + 4], 0x30303030
mov dword [ebp], 0x30303030
add ebp, 9
dec ebx
cmp ebx, 1
jbe 0x40487b
mov edi, dword [esp + ebx*4 + 0x10]
test edi, edi
je 0x4047c0
mov eax, edi
mov ecx, 0xd1b71759
mul ecx
mov ecx, edx
shr ecx, 0xd
mov dword [esp], ebx
imul ebx, ecx, 0xffffd8f0
add ebx, edi
mov eax, ebx
mov edx, 0x51eb851f
mul edx
mov esi, ebp
mov ebp, edx
shr ebp, 5
imul eax, ebp, 0x64
sub ebx, eax
movzx eax, word [ebx + ebx + 0x4fce48]
mov word [esi + 7], ax
mov eax, edi
mov edx, 0x55e63b89
mul edx
mov ebx, edx
shr ebx, 0x19
imul edi, ebx, 0xffffd8f0
add edi, ecx
mov eax, edi
mov ecx, 0x51eb851f
mul ecx
movzx eax, word [ebp + ebp + 0x4fce48]
mov ebp, esi
mov word [esi + 5], ax
shr edx, 5
imul eax, edx, 0x64
sub edi, eax
movzx eax, word [edi + edi + 0x4fce48]
mov word [esi + 3], ax
movzx eax, word [edx + edx + 0x4fce48]
mov word [esi + 1], ax
add bl, 0x30
mov byte [esi], bl
mov ebx, dword [esp]
jmp 0x4047d2
mov edi, ebp
xor ebp, ebp
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.00414a3c
mov eax, edi
mov edx, ebp
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret