Function at 0x30004158
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x98
mov eax, dword [section..cdata]
push ebx
xor ebx, ebx
cmp byte [0x301e4d00], bl
mov dword [ebp + 0x70], eax
push esi
jne 0x3006b19b
mov eax, dword [0x301e4cec]
and al, 1
neg al
sbb eax, eax
and eax, 0x17
add eax, 0x24
mov dword [0x301df310], eax
mov eax, dword [ebp + 0x7c]
imul eax, eax, 0xc
mov esi, dword [eax + 0x3000581c]
cmp esi, 0x31
push edi
mov dword [ebp - 0x24], esi
je 0x3006b1aa
xor edi, edi
mov dword [ebp + 0x7c], ebx
inc edi
mov ecx, dword [0x301de06a]
mov dx, word [0x301de06e]
mov eax, ecx
and ax, 0x2000
neg ax
push 0
sbb eax, eax
neg eax
add eax, 0x1b
mov dword [ebp - 0x18], eax
shr dx, 0xf
pop eax
setne al
add eax, 0x15
cmp dx, bx
mov dword [ebp - 0x1c], eax
jne 0x3006b1c3
mov dword [ebp - 0x20], 0x20
push ebx
lea eax, [ebp - 0x10]
push eax
push eax
push ebx
call fcn.300040b8
or byte [eax + 0xc], 8
mov byte [eax + 7], bl
call fcn.30004031
push esi
call fcn.30003f05
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [0x301de0a4]
shr eax, 1
and eax, edi
push eax
push ebx
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30003a97
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0xd
call fcn.300040b8
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [0x301de0a4]
shr eax, 1
and eax, edi
push eax
push 2
pop esi
push esi
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30003a97
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0xe
call fcn.300040b8
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [0x301de0a4]
shr eax, 2
and eax, edi
push eax
push esi
push esi
push edi
push ebx
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30003b0c
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0xf
call fcn.300040b8
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [0x301de0a4]
shr eax, 2
and eax, edi
push eax
push edi
push edi
push edi
push esi
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30003b0c
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0x10
call fcn.300040b8
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov ax, word [0x301de0a8]
push ebx
push edi
push eax
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30004917
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0x11
call fcn.300040b8
add eax, 0xc
or byte [eax], 0x40
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov ax, word [0x301de0a8]
push ebx
push esi
push eax
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30004917
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0x12
call fcn.300040b8
add eax, 0xc
or byte [eax], 0x40
push ebx
push ebx
push dword [ebp - 0x18]
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
movzx eax, byte [0x301de070]
push eax
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30003baa
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0x13
call fcn.300040b8
push dword [ebp - 0x24]
add eax, 0xc
or byte [eax], 4
push 0x1b
push edi
push dword [ebp + 0x7c]
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30003c32
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0x14
call fcn.300040b8
push dword [ebp - 0x24]
add eax, 0xc
or byte [eax], 4
push ebx
push edi
push dword [ebp + 0x7c]
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30003c32
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0x15
call fcn.300040b8
push dword [ebp - 0x24]
add eax, 0xc
or byte [eax], 4
push 0x1b
push ebx
push dword [ebp + 0x7c]
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30003c32
push ebx
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
push eax
push 0x16
call fcn.300040b8
add eax, 0xc
or byte [eax], 4
test byte [0x301de0a4], 1
mov al, byte [ebp - 0x20]
mov byte [ebp - 0x10], al
mov byte [ebp - 0xf], 0x25
mov byte [ebp - 0xe], 0x18
lea eax, [ebp - 0xd]
je 0x3000441e
push edi
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0xd]
push eax
call fcn.30004998
mov byte [eax], 0x22
mov cl, byte [0x301de07c]
inc eax
mov byte [eax], cl
mov cl, byte [0x301de090]
inc eax
mov byte [eax], cl
movzx ecx, word [0x301de07c]
add ecx, ecx
push ecx
inc eax
push eax
push 0x301de07e
call fcn.30056427
movzx ecx, word [0x301de090]
add ecx, ecx
push ecx
push eax
push 0x301de092
call fcn.30056427
push ebx
push eax
lea eax, [ebp - 0x10]
push eax
push 0x17
call fcn.300040b8
add eax, 0xc
or word [eax], si
test byte [0x301de0a4], 1
mov al, byte [ebp - 0x20]
mov byte [ebp - 0x10], al
mov byte [ebp - 0xf], 0x25
mov byte [ebp - 0xe], 0x18
mov byte [ebp - 0xd], 0x25
mov byte [ebp - 0xc], 0x1a
lea eax, [ebp - 0xb]
je 0x300044a1
push edi
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0xb]
push eax
call fcn.30004998
mov byte [eax], 0x22
mov cl, byte [0x301de07c]
inc eax
mov byte [eax], cl
mov cl, byte [0x301de090]
inc eax
mov byte [eax], cl
movzx ecx, word [0x301de07c]
add ecx, ecx
push ecx
inc eax
push eax
push 0x301de07e
call fcn.30056427
movzx ecx, word [0x301de090]
add ecx, ecx
push ecx
push eax
push 0x301de092
call fcn.30056427
push ebx
push eax
lea eax, [ebp - 0x10]
push eax
push 0x18
call fcn.300040b8
add eax, 0xc
or word [eax], si
mov al, byte [ebp - 0x1c]
mov byte [ebp - 0x10], al
push ebx
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x19
mov byte [ebp - 0xf], 0x25
mov byte [ebp - 0xe], 0x18
call fcn.300040b8
add eax, 0xc
or word [eax], si
mov al, byte [ebp - 0x1c]
mov byte [ebp - 0x10], al
push ebx
lea eax, [ebp - 0xb]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x1a
mov byte [ebp - 0xf], 0x25
mov byte [ebp - 0xe], 0x18
mov byte [ebp - 0xd], 0x25
mov byte [ebp - 0xc], 0x1a
call fcn.300040b8
add eax, 0xc
or word [eax], si
push ebx
push ebx
push dword [ebp - 0x18]
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], eax
movzx eax, byte [0x301de070]
push eax
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.30003baa
push edi
lea eax, [ebp + 0x70]
push eax
push dword [ebp - 0x14]
call fcn.30004998
mov cl, byte [ebp - 0x1c]
mov byte [eax], cl
inc eax
mov byte [eax], 0x25
inc eax
mov byte [eax], 0x18
push ebx
inc eax
push eax
lea eax, [ebp - 0x10]
push eax
push 0x1b
call fcn.300040b8
or byte [eax + 0xc], 6
push ebx
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x1c
mov byte [ebp - 0x10], 0x18
mov byte [ebp - 0xf], 0x25
mov byte [ebp - 0xe], 0x1a
call fcn.300040b8
add eax, 0xc
or word [eax], si
push ebx
lea eax, [ebp - 9]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x1d
mov byte [ebp - 0x10], 0x2f
mov byte [ebp - 0xf], 1
mov byte [ebp - 0xe], 0x18
mov byte [ebp - 0xd], 0x25
mov byte [ebp - 0xc], 0x1a
mov byte [ebp - 0xb], 0x2e
mov byte [ebp - 0xa], 1
call fcn.300040b8
add eax, 0xc
or word [eax], si
push ebx
lea eax, [ebp - 0xa]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x1f
mov byte [ebp - 0x10], 0x30
mov byte [ebp - 0xf], 1
mov byte [ebp - 0xe], 0x25
mov byte [ebp - 0xd], 0x18
mov byte [ebp - 0xc], 0x25
mov byte [ebp - 0xb], 0x1a
call fcn.300040b8
add eax, 0xc
or word [eax], si
cmp byte [0x301e4d02], bl
pop edi
jne 0x3006b1d8
test byte [0x301e4cec], 1
jne 0x3006b1ef
push ebx
lea eax, [ebp - 0xf]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x1e
mov byte [ebp - 0x10], 6
call fcn.300040b8
mov esi, eax
or byte [esi + 0xc], 8
lea ecx, [ebp - 0x10]
lea eax, [ebp - 0xf]
sub al, cl
mov ecx, dword [ebp + 0x70]
mov byte [esi + 7], bl
mov byte [esi + 0xb], al
mov byte [esi + 5], al
mov byte [esi + 4], al
mov byte [esi + 6], al
mov byte [esi + 9], 1
mov byte [esi + 8], 1
mov byte [esi + 0xa], 1
pop esi
pop ebx
call fcn.30056b36
add ebp, 0x74
leave
ret 4
mov dword [0x301df310], 0x30
jmp 0x30004191
cmp word [0x301de072], 0x2e
jne 0x300041aa
xor edi, edi
inc edi
mov dword [ebp + 0x7c], edi
jmp 0x300041b0
test cl, 1
mov dword [ebp - 0x20], 0x21
je 0x300041f0
jmp 0x300041e9
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
call fcn.30118628
jmp 0x3000461f
push dword [ebp - 0x24]
lea eax, [ebp - 0x18]
push dword [ebp + 0x7c]
push eax
call fcn.3011816d
jmp 0x3000462c