Function at 0x507ad0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x70
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x1c]
mov ebx, dword [ecx + 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], edx
mov edx, 9
mov byte [esp + 0x20], 0x30
mov dword [esp + 0x1c], 0x30303030
mov dword [esp + 0x18], 0x30303030
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], edi
mov edi, dword [ecx + 0x10]
mov dword [esp + 0x4c], esi
mov dword [esp + 8], ebx
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x20]
test edi, edi
mov dword [esp + 0xc], edi
cmovne edx, ebx
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x507b80
mov ebx, dword [ebp + 0x10]
test edx, edx
mov dword [esp + 4], edx
je 0x507b87
test ebx, ebx
je 0x5081a6
xor edx, edx
div ebx
add al, 0x30
mov edi, edx
mov edx, 0xcccccccd
mov byte [esp + 0x18], al
mov eax, ebx
mul edx
test edi, edi
je 0x507ba1
mov esi, dword [esp + 4]
shr edx, 3
cmp esi, 1
jne 0x507bab
mov ebx, dword [esp + 8]
jmp 0x507c2a
xor esi, esi
jmp 0x507d68
lea esi, [ebx + ebx*4]
mov ebx, dword [esp + 8]
mov dword [esp + 0x2c], edx
cmp esi, eax
jbe 0x507c95
xor esi, esi
jmp 0x507d6c
mov esi, 1
jmp 0x507d60
cmp ebx, 0xa
jb 0x5081a6
mov eax, edi
mov esi, edx
xor edx, edx
mov edi, ecx
div esi
mov esi, 0x51eb851f
add al, 0x30
mov ecx, edx
mov byte [esp + 0x19], al
mov eax, ebx
mul esi
test ecx, ecx
je 0x507cbb
mov esi, dword [esp + 4]
shr edx, 5
mov eax, ecx
cmp esi, 2
je 0x507c22
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x64
jb 0x5081a6
mov esi, edx
xor edx, edx
div esi
mov esi, 0x10624dd3
add al, 0x30
mov ecx, edx
mov byte [esp + 0x1a], al
mov eax, ebx
mul esi
test ecx, ecx
je 0x507cc5
mov esi, dword [esp + 4]
shr edx, 6
mov eax, ecx
cmp esi, 3
jne 0x507ccf
mov ecx, edi
mov ebx, dword [esp + 8]
mov edi, eax
lea eax, [edx + edx*4]
mov dword [esp + 0x2c], esi
cmp edi, eax
jae 0x507c3e
mov edi, dword [esp + 0xc]
jmp 0x507d6c
lea eax, [esi - 1]
mov dl, 1
xor esi, esi
mov edi, 0x30
mov dword [esp + 0x28], ecx
nop
movzx ebx, byte [esp + eax + 0x18]
movzx edx, dl
mov bh, bl
inc bh
cmp bl, 0x39
movzx ebx, bh
cmovb edx, esi
cmovae ebx, edi
mov byte [esp + eax + 0x18], bl
add eax, 0xffffffff
setb bl
test dl, 1
je 0x507c7b
test bl, bl
jne 0x507c50
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0xc]
test dl, 1
jne 0x507c95
mov esi, dword [esp + 4]
jmp 0x507d6c
mov eax, dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov esi, dword [esp + 4]
add eax, 1
adc edx, 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], edx
jmp 0x507d6c
mov esi, 2
jmp 0x507d5e
mov esi, 3
jmp 0x507d5e
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x3e8
jb 0x5081a6
mov esi, edx
xor edx, edx
div esi
mov esi, 0xd1b71759
add al, 0x30
mov ecx, edx
mov byte [esp + 0x1b], al
mov eax, ebx
mul esi
test ecx, ecx
je 0x507d59
mov esi, dword [esp + 4]
mov ebx, dword [esp + 8]
shr edx, 0xd
mov eax, ecx
cmp esi, 4
je 0x507d52
mov esi, dword [ebp + 0x10]
cmp esi, 0x2710
jb 0x5081a6
mov ebx, edx
xor edx, edx
div ebx
mov ebx, dword [esp + 8]
add al, 0x30
mov ecx, edx
mov byte [esp + 0x1c], al
mov eax, esi
mov esi, 0xa7c5ac5
shr eax, 5
mul esi
test ecx, ecx
je 0x50803a
mov esi, dword [esp + 4]
shr edx, 7
mov eax, ecx
cmp esi, 5
jne 0x50804a
mov ecx, edi
jmp 0x507c28
mov esi, 4
mov ecx, edi
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 8]
mov dword [esp + 0x2c], esi
lea eax, [esp + 0x44]
cmp ebx, 9
mov dword [esp + 0x54], eax
lea eax, [esp + 0x30]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x40]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x68], eax
mov eax, 9
cmovb eax, ebx
test edi, edi
cmove eax, esi
cmp dword [ecx + 8], 0
mov dword [esp + 0x40], eax
je 0x507ddc
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 4], esi
test eax, eax
je 0x507dec
cmp eax, 8
jae 0x507df5
mov edx, dword [ebp + 0x1c]
mov ebx, eax
mov esi, ecx
xor edi, edi
mov eax, edx
mov ecx, edx
jmp 0x507e7d
mov edx, ecx
lea ecx, [esp + 0x54]
call fcn.005081c0
jmp 0x507fef
xor edi, edi
mov esi, ecx
jmp 0x507e91
mov esi, dword [ebp + 0x1c]
movdqa xmm2, xmmword [0x5f1120]
movdqa xmm3, xmmword [0x5f1130]
mov edx, eax
pxor xmm0, xmm0
pxor xmm1, xmm1
and edx, 0xfffffff8
mov ebx, edx
lea eax, [esi + edx]
lea edi, [esi + 4]
mov esi, ecx
nop
movd xmm4, dword [edi - 4]
movd xmm5, dword [edi]
add edi, 8
add ebx, 0xfffffff8
pcmpgtb xmm4, xmm2
pcmpgtb xmm5, xmm2
punpcklbw xmm4, xmm4
punpcklwd xmm4, xmm4
pand xmm4, xmm3
paddd xmm0, xmm4
punpcklbw xmm5, xmm5
punpcklwd xmm5, xmm5
pand xmm5, xmm3
paddd xmm1, xmm5
jne 0x507e20
paddd xmm1, xmm0
mov ebx, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
cmp edx, ebx
movd edi, xmm1
je 0x507e91
add ecx, ebx
nop
xor edx, edx
cmp byte [eax], 0xc0
lea eax, [eax + 1]
setge dl
add edi, edx
cmp eax, ecx
jne 0x507e80
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + 0xc]
add edi, dword [ebp + 0x18]
mov dword [esp + 0x28], esi
mov eax, ecx
or eax, edx
je 0x507f40
mov esi, edx
mov eax, edx
shr eax, 0xa
shld esi, ecx, 0x16
mov dword [esp + 0x3c], eax
push 2
push 0x540be400
push edx
push ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call fcn.00549e20
mov ecx, 0x9502f8
cmp ecx, esi
mov ecx, 0
mov esi, 0xa
sbb ecx, dword [esp + 0x3c]
mov ecx, 0
cmovae edx, dword [esp + 0x14]
cmovae eax, dword [esp + 0x10]
cmovae esi, ecx
cmp eax, 0x186a0
mov ecx, edx
sbb ecx, 0
jb 0x507f16
push 0
push 0x186a0
push edx
push eax
call fcn.00549e20
or esi, 5
lea ecx, [eax + 0x5fff6]
lea edx, [eax + 0x7ff9c]
and ecx, edx
lea edx, [eax + 0xdfc18]
add eax, 0x7d8f0
and eax, edx
xor eax, ecx
shr eax, 0x11
lea eax, [esi + eax + 1]
mov esi, dword [esp + 0x28]
jmp 0x507f45
mov eax, 1
add edi, eax
cmp dword [esp + 0xc], 0
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x24]
cmove edx, dword [esp + 4]
inc edx
test ecx, ecx
cmove edx, ecx
add edx, edi
sub ebx, edx
jbe 0x507f81
mov eax, dword [esi + 0x20]
xor ecx, ecx
cmp al, 3
cmove eax, ecx
test al, al
je 0x507f8e
cmp al, 1
jne 0x507f96
mov dword [esp + 4], 0
jmp 0x507fa3
lea ecx, [esp + 0x54]
mov edx, esi
call fcn.005081c0
jmp 0x507fef
mov dword [esp + 4], ebx
xor ebx, ebx
jmp 0x507fa3
mov eax, ebx
inc ebx
shr ebx, 1
shr eax, 1
mov dword [esp + 4], ebx
mov ebx, eax
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 4]
mov esi, dword [esi + 0x1c]
inc ebx
mov dword [esp + 0x10], eax
nop word cs:[eax + eax]
nop dword [eax + eax]
dec ebx
je 0x507fd4
push edi
push dword [esp + 0x14]
call dword [esi + 0x10]
add esp, 8
test al, al
je 0x507fc0
jmp 0x507fed
cmp edi, 0x110000
je 0x507fed
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x54]
call fcn.005081c0
test al, al
je 0x507ff7
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 4]
mov ebx, 0xffffffff
neg eax
mov dword [esp + 0x14], eax
nop word cs:[eax + eax]
mov eax, dword [esp + 0x14]
add eax, ebx
cmp eax, 0xffffffff
je 0x50802d
push edi
push dword [esp + 0x14]
call dword [esi + 0x10]
add esp, 8
inc ebx
test al, al
je 0x508010
jmp 0x508031
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 4]
setb al
jmp 0x507fef
mov esi, 5
mov ecx, edi
mov edi, dword [esp + 0xc]
jmp 0x507d68
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x186a0
jb 0x5081a6
mov esi, edx
xor edx, edx
div esi
mov esi, 0x431bde83
add al, 0x30
mov ecx, edx
mov byte [esp + 0x1d], al
mov eax, ebx
mul esi
test ecx, ecx
je 0x5080ce
mov esi, dword [esp + 4]
mov eax, ecx
shr edx, 0x12
mov ecx, edi
cmp esi, 6
je 0x507c24
mov ebx, dword [ebp + 0x10]
cmp ebx, 0xf4240
jb 0x5081a6
mov esi, edx
xor edx, edx
div si
add al, 0x30
mov esi, edx
mov edx, 0x6b5fca6b
mov byte [esp + 0x1e], al
mov eax, ebx
mul edx
test si, si
je 0x5080d8
mov eax, esi
mov esi, dword [esp + 4]
shr edx, 0x16
cmp esi, 7
jne 0x5080e2
mov ebx, dword [esp + 8]
movzx edi, ax
jmp 0x507c2a
mov esi, 6
jmp 0x507d5e
mov esi, 7
jmp 0x507d60
mov ebx, dword [ebp + 0x10]
cmp ebx, 0x989680
jb 0x5081a6
mov esi, edx
xor edx, edx
div si
add al, 0x30
mov esi, edx
mov edx, 0x55e63b89
mov byte [esp + 0x1f], al
mov eax, ebx
mul edx
test si, si
je 0x508130
mov eax, esi
mov esi, dword [esp + 4]
shr edx, 0x19
mov dword [esp + 0x24], edx
cmp esi, 8
jne 0x50813a
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x24]
movzx edi, ax
jmp 0x507c2a
mov esi, 8
jmp 0x507d60
cmp dword [ebp + 0x10], 0x5f5e100
jb 0x5081a6
xor edx, edx
mov ebx, dword [esp + 8]
div word [esp + 0x24]
add al, 0x30
test dx, dx
mov byte [esp + 0x20], al
je 0x508180
mov eax, dword [ebp + 0x10]
mov ecx, edx
mov edx, 0x44b83
shr eax, 9
mul edx
cmp dword [esp + 4], 9
jne 0x50818a
mov esi, dword [esp + 4]
movzx eax, cx
mov ecx, edi
shr edx, 7
jmp 0x507c28
mov esi, 9
jmp 0x50803f
cmp dword [ebp + 0x10], 0x3b9aca00
jb 0x5081a6
push 0x5faaec
push 9
push 9
call fcn.00570800
add esp, 0xc
ud2
push 0x5faadc
push 0x19
push str.attempt_to_divide_by_zero
call fcn.005707b0
add esp, 0xc
ud2