Function at 0x46c070
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov eax, dword [ebp + 0x14]
mov ebx, edx
mov esi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov edi, dword [ebp + 8]
mov byte [esp + 0x24], 0x30
mov dword [esp + 0x20], 0x30303030
mov dword [esp + 0x1c], 0x30303030
mov dword [esp + 4], ebx
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], edx
call 0x46c0ba
pop edx
mov dword [esp + 0x4c], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], edx
test eax, eax
je 0x46c1da
test edx, edx
mov edx, dword [ecx + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, 9
cmovne edi, edx
mov dword [esp], edx
test edi, edi
mov dword [esp + 0x10], edi
je 0x46c1e4
xor edx, edx
mov dword [esp + 0xc], ecx
mov ecx, 0xcccccccd
div ebx
add al, 0x30
mov edi, edx
mov byte [esp + 0x1c], al
mov eax, ebx
mul ecx
test edi, edi
je 0x46c20a
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov edi, dword [ebp + 8]
shr edx, 3
mov dword [esp + 8], edx
cmp ecx, 1
je 0x46c1b9
cmp ebx, 0xa
jb 0x46c79e
mov eax, dword [esp + 0x14]
xor edx, edx
mov ecx, 0x51eb851f
div dword [esp + 8]
add al, 0x30
mov ebx, edx
mov byte [esp + 0x1d], al
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], ebx
mul ecx
test ebx, ebx
je 0x46c28f
mov ecx, dword [esp + 0x10]
shr edx, 5
mov dword [esp + 8], edx
cmp ecx, 2
je 0x46c1b9
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x64
jb 0x46c79e
mov eax, dword [esp + 0x14]
xor edx, edx
mov ecx, 0x10624dd3
div dword [esp + 8]
add al, 0x30
mov ebx, edx
mov byte [esp + 0x1e], al
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], ebx
mul ecx
test ebx, ebx
je 0x46c2be
mov ecx, dword [esp + 0x10]
shr edx, 6
mov dword [esp + 8], edx
cmp ecx, 3
jne 0x46c2c8
mov edx, dword [esp]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], ecx
lea eax, [eax + eax*4]
cmp dword [esp + 0x14], eax
jae 0x46c222
mov ecx, dword [esp + 0xc]
jmp 0x46c380
mov edx, dword [ecx + 0xc]
xor eax, eax
jmp 0x46c378
lea edx, [ebx + ebx*4]
mov ebx, dword [esp + 4]
mov dword [esp + 0x2c], 0
cmp edx, eax
jbe 0x46c264
mov edx, dword [esp]
mov edi, dword [ebp + 8]
mov dword [esp + 0x10], 0
jmp 0x46c380
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 4]
mov eax, 1
jmp 0x46c378
lea eax, [ecx - 1]
mov esi, 0x30
nop word [eax + eax]
movzx edx, byte [esp + eax + 0x1c]
mov edi, eax
mov ebx, edx
inc bl
add eax, 0xffffffff
setb bh
cmp dl, 0x39
movzx ecx, bl
cmovae ecx, esi
mov byte [esp + edi + 0x1c], cl
jb 0x46c254
test bh, bh
jne 0x46c230
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 4]
mov esi, dword [ebp + 0x1c]
cmp dl, 0x38
jbe 0x46c299
mov edi, dword [ebp + 8]
add ebx, 1
adc edi, 0
jae 0x46c289
mov edx, dword [esp]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov bl, 1
jmp 0x46c39a
mov dword [esp + 4], ebx
jmp 0x46c29c
mov eax, 2
jmp 0x46c36d
mov edi, dword [ebp + 8]
mov dword [esp + 0x38], ebx
mov edx, dword [esp]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 1
xor ebx, ebx
jmp 0x46c39a
mov eax, 3
jmp 0x46c36d
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x3e8
jb 0x46c79e
mov eax, dword [esp + 0x14]
xor edx, edx
mov ecx, 0xd1b71759
div dword [esp + 8]
add al, 0x30
mov ebx, edx
mov byte [esp + 0x1f], al
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], ebx
mul ecx
test ebx, ebx
je 0x46c368
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
shr edx, 0xd
mov dword [esp + 8], edx
cmp ecx, 4
je 0x46c360
mov ecx, dword [ebp + 0x10]
cmp ecx, 0x2710
jb 0x46c79e
mov eax, dword [esp + 0x14]
xor edx, edx
div dword [esp + 8]
add al, 0x30
mov ebx, edx
mov byte [esp + 0x20], al
mov eax, ecx
mov ecx, 0xa7c5ac5
mov dword [esp + 0x14], ebx
shr eax, 5
mul ecx
test ebx, ebx
mov ebx, dword [esp + 4]
je 0x46c660
mov ecx, dword [esp + 0x10]
shr edx, 7
mov dword [esp + 8], edx
cmp ecx, 5
jne 0x46c671
mov edx, dword [esp]
jmp 0x46c1c0
mov eax, 4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
mov ebx, dword [esp + 4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], ebx
xor ebx, ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 1
lea eax, [esp + 0x30]
cmp edx, 9
mov dword [esp + 0x64], eax
lea eax, [esp + 0x54]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x78], eax
mov eax, 9
cmovb eax, edx
cmp dword [esp + 0x44], 0
cmove eax, dword [esp + 0x10]
cmp dword [ecx], 0
mov dword [esp + 0x50], eax
je 0x46c5bd
mov dword [esp + 0xc], ebx
mov ebx, dword [ebp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 8], edi
xor edi, edi
mov eax, 0
cmp ebx, 8
jb 0x46c48d
movdqa xmm2, xmmword [0x7d4890]
movdqa xmm3, xmmword [0x7d4430]
mov eax, ebx
mov dword [esp], edx
lea edi, [esi + 4]
pxor xmm0, xmm0
pxor xmm1, xmm1
and eax, 0xfffffff8
mov edx, eax
movd xmm5, dword [edi - 4]
movd xmm4, dword [edi]
add edi, 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 0x46c430
paddd xmm1, xmm0
mov ebx, dword [ebp + 0x20]
mov edx, dword [esp]
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
cmp eax, ebx
movd edi, xmm1
je 0x46c4ae
sub ebx, eax
add esi, eax
nop word cs:[eax + eax]
nop dword [eax + eax]
xor eax, eax
cmp byte [esi], 0xc0
setge al
inc esi
add edi, eax
dec ebx
jne 0x46c4a0
add edi, dword [ebp + 0x18]
mov ebx, dword [ecx + 4]
cmp byte [esp + 0xc], 0
mov eax, 0x14
jne 0x46c588
mov eax, dword [esp + 4]
mov esi, dword [esp + 8]
or eax, esi
je 0x46c54e
mov eax, dword [esp + 4]
mov dword [esp], edx
mov edx, esi
mov dword [esp + 0xc], ecx
mov ecx, esi
mov dword [esp + 0x18], ebx
shr edx, 0xa
mov dword [esp + 0x48], edx
shld ecx, eax, 0x16
mov dword [esp + 0x28], ecx
push 2
push 0x540be400
push esi
push eax
call fcn.007bcb10
mov ecx, 0x9502f8
mov ebx, 0
cmp ecx, dword [esp + 0x28]
mov ecx, 0
sbb ecx, dword [esp + 0x48]
mov ecx, 0xa
cmovae eax, dword [esp + 4]
cmovae ecx, ebx
cmovae edx, esi
mov dword [esp + 0x28], ecx
mov ecx, edx
cmp eax, 0x186a0
sbb ecx, 0
jb 0x46c555
push 0
push 0x186a0
push edx
push eax
call fcn.007bcb10
mov esi, dword [esp + 0x28]
or esi, 5
jmp 0x46c559
mov eax, 1
jmp 0x46c588
mov esi, dword [esp + 0x28]
lea ecx, [eax + 0x5fff6]
lea edx, [eax + 0x7ff9c]
mov ebx, dword [esp + 0x18]
and ecx, edx
lea edx, [eax + 0xdfc18]
add eax, 0x7d8f0
and eax, edx
mov edx, dword [esp]
xor eax, ecx
mov ecx, dword [esp + 0xc]
shr eax, 0x11
lea eax, [esi + eax + 1]
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x14]
cmove edx, dword [esp + 0x10]
inc edx
test esi, esi
cmove edx, esi
add edx, eax
add edi, edx
sub ebx, edi
jbe 0x46c5bd
movzx eax, byte [ecx + 0x20]
mov edx, dword [esp + 0x4c]
xor edi, edi
add edx, dword [eax*4 + 0x46c7b4]
jmp edx
mov edx, ecx
lea ecx, [esp + 0x64]
call fcn.0046c7d0
jmp 0x46c658
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
mov eax, 5
jmp 0x46c378
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x186a0
jb 0x46c79e
mov eax, dword [esp + 0x14]
xor edx, edx
mov ecx, 0x431bde83
div dword [esp + 8]
add al, 0x30
mov ebx, edx
mov byte [esp + 0x21], al
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], ebx
mul ecx
test ebx, ebx
je 0x46c710
mov ecx, dword [esp + 0x10]
shr edx, 0x12
mov dword [esp + 8], edx
cmp ecx, 6
je 0x46c1b9
mov ebx, dword [ebp + 0x10]
cmp ebx, 0xf4240
jb 0x46c79e
xor edx, edx
mov eax, dword [esp + 0x14]
mov ecx, 0x6b5fca6b
div word [esp + 8]
add al, 0x30
mov ebx, edx
mov byte [esp + 0x22], al
mov eax, dword [ebp + 0x10]
mul ecx
test bx, bx
je 0x46c71a
shr edx, 0x16
cmp dword [esp + 0x10], 7
mov eax, ebx
mov dword [esp + 8], edx
jne 0x46c724
movzx ecx, ax
mov edx, dword [esp]
mov ebx, dword [esp + 4]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
jmp 0x46c1c0
mov eax, 6
jmp 0x46c36d
mov eax, 7
jmp 0x46c36d
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x989680
jb 0x46c79e
xor edx, edx
mov ecx, 0x55e63b89
div word [esp + 8]
add al, 0x30
mov ebx, edx
mov byte [esp + 0x23], al
mov eax, dword [ebp + 0x10]
mul ecx
test bx, bx
je 0x46c774
shr edx, 0x19
cmp dword [esp + 0x10], 8
mov eax, ebx
mov dword [esp + 8], edx
jne 0x46c77e
mov edx, dword [esp]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
movzx eax, ax
mov dword [esp + 0x14], eax
jmp 0x46c1c0
mov eax, 8
jmp 0x46c36d
cmp dword [ebp + 0x10], 0x5f5e100
jb 0x46c79e
xor edx, edx
div word [esp + 8]
add al, 0x30
mov byte [esp + 0x24], al
mov eax, 9
jmp 0x46c36d
mov ecx, str.attempt_to_divide_by_zero
mov edx, 0x19
push 0x810b28
call fcn.007c1ca0
nop
sbb al, byte [0x4fd0000]
add byte [eax], al
adc eax, dword [0x51a0000]
add byte [eax], al
int3