Function at 0x300203a4
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [ebp + 8]
push ebx
lea eax, [eax + eax*2]
push esi
mov eax, dword [eax*4 + 0x30020260]
xor ebx, ebx
cmp eax, 0x31
push edi
mov dword [0x3017fa30], 0x24
mov dword [ebp - 4], eax
je 0x300438a6
mov dword [ebp - 8], ebx
mov edx, dword [0x3017e046]
mov eax, edx
and ax, 0x2000
mov ecx, dword [0x3017e04a]
neg ax
sbb eax, eax
neg eax
add eax, 0x1b
mov dword [ebp - 0x94], eax
and ecx, 0x8000
xor eax, eax
cmp cx, bx
setne al
add eax, 0x15
cmp cx, bx
mov dword [ebp - 0x10], eax
jne 0x300438c0
mov dword [ebp - 0xc], 0x20
lea eax, [ebp - 0x90]
push ebx
mov dword [ebp + 8], eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x90]
push eax
push ebx
call fcn.30020b82
or esi, 0xffffffff
push esi
push ebx
push 1
push ebx
or byte [eax + 0xc], 8
push ebx
push ebx
mov byte [eax + 7], bl
lea eax, [ebp - 0x90]
push eax
call fcn.30020c15
push ebx
push eax
mov dword [ebp + 8], eax
lea eax, [ebp - 0x90]
push eax
push 1
call fcn.30020b82
push esi
push 2
pop edi
push edi
push 1
push ebx
push ebx
push ebx
lea eax, [ebp - 0x90]
push eax
call fcn.30020c15
push ebx
push eax
mov dword [ebp + 8], eax
lea eax, [ebp - 0x90]
push eax
push edi
call fcn.30020b82
push esi
push ebx
push 4
push ebx
push ebx
push 1
lea eax, [ebp - 0x90]
push eax
call fcn.30020c15
push ebx
push eax
mov dword [ebp + 8], eax
lea eax, [ebp - 0x90]
push eax
push 3
call fcn.30020b82
push esi
push edi
push 4
push ebx
push ebx
push 1
lea eax, [ebp - 0x90]
push eax
call fcn.30020c15
push ebx
push eax
mov dword [ebp + 8], eax
lea eax, [ebp - 0x90]
push eax
push 4
call fcn.30020b82
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push ebx
push ebx
push ebx
push 5
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push ebx
push ebx
push 1
push 6
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push ebx
push edi
push ebx
push 7
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push ebx
push edi
push 1
push 8
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push 1
push ebx
push ebx
push 9
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push 1
push ebx
push 1
push 0xa
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push 1
push edi
push ebx
push 0xb
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push 1
push edi
push 1
push 0xc
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push edi
push ebx
push ebx
push 0x21
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push edi
push edi
push ebx
push 0x23
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push 3
push ebx
push ebx
push 0x20
push eax
call fcn.30020c8e
push ebx
push esi
push esi
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x90]
push 3
push edi
push ebx
push 0x22
push eax
call fcn.30020c8e
push 1
lea eax, [ebp - 0x90]
mov dword [ebp + 8], eax
mov eax, dword [0x3017e070]
pop esi
shr eax, 1
and eax, esi
push eax
push ebx
lea eax, [ebp + 8]
push eax
call fcn.30021049
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0xd
call fcn.30020b82
lea eax, [ebp - 0x90]
mov dword [ebp + 8], eax
mov eax, dword [0x3017e070]
shr eax, 1
and eax, esi
push eax
push edi
lea eax, [ebp + 8]
push eax
call fcn.30021049
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0xe
call fcn.30020b82
lea eax, [ebp - 0x90]
mov dword [ebp + 8], eax
mov eax, dword [0x3017e070]
shr eax, 2
and eax, esi
push eax
push edi
push edi
push esi
push ebx
lea eax, [ebp + 8]
push eax
call fcn.300210be
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0xf
call fcn.30020b82
lea eax, [ebp - 0x90]
mov dword [ebp + 8], eax
mov eax, dword [0x3017e070]
shr eax, 2
and eax, esi
push eax
push esi
push esi
push esi
push edi
lea eax, [ebp + 8]
push eax
call fcn.300210be
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0x10
call fcn.30020b82
push ebx
lea eax, [ebp - 0x90]
push esi
mov dword [ebp + 8], eax
mov ax, word [0x3017e074]
push eax
lea eax, [ebp + 8]
push eax
call fcn.30021135
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0x11
call fcn.30020b82
or byte [eax + 0xc], 0x40
add eax, 0xc
push ebx
lea eax, [ebp - 0x90]
push edi
mov dword [ebp + 8], eax
mov ax, word [0x3017e074]
push eax
lea eax, [ebp + 8]
push eax
call fcn.30021135
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0x12
call fcn.30020b82
or byte [eax + 0xc], 0x40
push ebx
add eax, 0xc
push ebx
push dword [ebp - 0x94]
lea eax, [ebp - 0x90]
mov dword [ebp + 8], eax
movzx eax, byte [0x3017e04c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.300211ca
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0x13
call fcn.30020b82
push dword [ebp - 4]
or byte [eax + 0xc], 4
push esi
push esi
push dword [ebp - 8]
add eax, 0xc
lea eax, [ebp - 0x90]
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
call fcn.30021231
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0x14
call fcn.30020b82
push dword [ebp - 4]
or byte [eax + 0xc], 4
push ebx
push esi
push dword [ebp - 8]
add eax, 0xc
lea eax, [ebp - 0x90]
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
call fcn.30021231
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0x15
call fcn.30020b82
push dword [ebp - 4]
or byte [eax + 0xc], 4
push esi
push ebx
push dword [ebp - 8]
add eax, 0xc
lea eax, [ebp - 0x90]
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
call fcn.30021231
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0x16
call fcn.30020b82
or byte [eax + 0xc], 4
add eax, 0xc
mov al, byte [ebp - 0xc]
test byte [0x3017e070], 1
mov byte [ebp - 0x90], al
lea eax, [ebp - 0x8d]
mov byte [ebp - 0x8f], 0x25
mov byte [ebp - 0x8e], 0x18
mov dword [ebp + 8], eax
je 0x30020848
push esi
lea eax, [ebp - 0x8d]
push eax
call fcn.30021196
mov dword [ebp + 8], eax
mov byte [eax], 0x22
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov al, byte [0x3017e058]
mov byte [ecx], al
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov al, byte [0x3017e064]
mov byte [ecx], al
movzx eax, word [0x3017e058]
inc dword [ebp + 8]
shl eax, 1
push eax
push dword [ebp + 8]
push 0x3017e05a
call fcn.30001000
movzx ecx, word [0x3017e064]
shl ecx, 1
push ecx
push eax
mov dword [ebp + 8], eax
push 0x3017e066
call fcn.30001000
push ebx
push eax
mov dword [ebp + 8], eax
lea eax, [ebp - 0x90]
push eax
push 0x17
call fcn.30020b82
or word [eax + 0xc], di
add eax, 0xc
mov al, byte [ebp - 0xc]
test byte [0x3017e070], 1
mov byte [ebp - 0x90], al
lea eax, [ebp - 0x8b]
mov byte [ebp - 0x8f], 0x25
mov byte [ebp - 0x8e], 0x18
mov byte [ebp - 0x8d], 0x25
mov byte [ebp - 0x8c], 0x1a
mov dword [ebp + 8], eax
je 0x300208f8
push esi
lea eax, [ebp - 0x8b]
push eax
call fcn.30021196
mov dword [ebp + 8], eax
mov byte [eax], 0x22
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov al, byte [0x3017e058]
mov byte [ecx], al
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov al, byte [0x3017e064]
mov byte [ecx], al
movzx eax, word [0x3017e058]
inc dword [ebp + 8]
shl eax, 1
push eax
push dword [ebp + 8]
push 0x3017e05a
call fcn.30001000
movzx ecx, word [0x3017e064]
shl ecx, 1
push ecx
push eax
mov dword [ebp + 8], eax
push 0x3017e066
call fcn.30001000
push ebx
push eax
mov dword [ebp + 8], eax
lea eax, [ebp - 0x90]
push eax
push 0x18
call fcn.30020b82
or word [eax + 0xc], di
add eax, 0xc
mov al, byte [ebp - 0x10]
mov byte [ebp - 0x90], al
lea eax, [ebp - 0x8d]
push ebx
mov dword [ebp + 8], eax
lea eax, [ebp - 0x8d]
push eax
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 0x8f], 0x25
mov byte [ebp - 0x8e], 0x18
push 0x19
call fcn.30020b82
or word [eax + 0xc], di
add eax, 0xc
mov al, byte [ebp - 0x10]
mov byte [ebp - 0x90], al
lea eax, [ebp - 0x8b]
push ebx
mov dword [ebp + 8], eax
lea eax, [ebp - 0x8b]
push eax
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 0x8f], 0x25
mov byte [ebp - 0x8e], 0x18
mov byte [ebp - 0x8d], 0x25
mov byte [ebp - 0x8c], 0x1a
push 0x1a
call fcn.30020b82
or word [eax + 0xc], di
push ebx
add eax, 0xc
push ebx
push dword [ebp - 0x94]
lea eax, [ebp - 0x90]
mov dword [ebp + 8], eax
movzx eax, byte [0x3017e04c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.300211ca
push esi
push dword [ebp + 8]
call fcn.30021196
mov cl, byte [ebp - 0x10]
mov dword [ebp + 8], eax
mov byte [eax], cl
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
push ebx
mov byte [eax], 0x25
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
mov byte [eax], 0x18
inc dword [ebp + 8]
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
push 0x1b
call fcn.30020b82
or byte [eax + 0xc], 6
lea eax, [ebp - 0x8d]
push ebx
mov dword [ebp + 8], eax
lea eax, [ebp - 0x8d]
push eax
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 0x90], 0x18
mov byte [ebp - 0x8f], 0x25
mov byte [ebp - 0x8e], 0x1a
push 0x1c
call fcn.30020b82
or word [eax + 0xc], di
add eax, 0xc
lea eax, [ebp - 0x89]
push ebx
mov dword [ebp + 8], eax
lea eax, [ebp - 0x89]
push eax
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 0x90], 0x2f
mov byte [ebp - 0x8f], 1
mov byte [ebp - 0x8e], 0x18
mov byte [ebp - 0x8d], 0x25
mov byte [ebp - 0x8c], 0x1a
mov byte [ebp - 0x8b], 0x2e
mov byte [ebp - 0x8a], 1
push 0x1d
call fcn.30020b82
or word [eax + 0xc], di
add eax, 0xc
lea eax, [ebp - 0x8a]
push ebx
mov dword [ebp + 8], eax
lea eax, [ebp - 0x8a]
push eax
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 0x90], 0x30
mov byte [ebp - 0x8f], 1
mov byte [ebp - 0x8e], 0x25
mov byte [ebp - 0x8d], 0x18
mov byte [ebp - 0x8c], 0x25
mov byte [ebp - 0x8b], 0x1a
push 0x1f
call fcn.30020b82
or word [eax + 0xc], di
add eax, 0xc
lea eax, [ebp - 0x8f]
push ebx
mov dword [ebp + 8], eax
lea eax, [ebp - 0x8f]
push eax
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 0x90], 6
push 0x1e
call fcn.30020b82
mov esi, eax
mov al, byte [ebp + 8]
lea ecx, [ebp - 0x90]
sub al, cl
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
or byte [esi + 0xc], 8
pop edi
mov byte [esi + 8], 1
mov byte [esi + 0xa], 1
mov byte [esi + 7], bl
pop esi
pop ebx
leave
ret 4
cmp word [0x3017e04e], 0x2e
mov dword [ebp - 8], 1
jne 0x300203d5
jmp 0x300203d8
test dl, 1
mov dword [ebp - 0xc], 0x21
jne 0x30020417
jmp 0x3002041e