Function at 0x4021572f
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push esi
push edi
mov edi, ecx
mov esi, edx
push 0
push edi
call fcn.4021566a
pop ecx
pop ecx
test eax, eax
je 0x40215751
xor eax, eax
inc eax
jmp 0x4021594c
push ebx
push 0x40
push 0x3000
push 0x2800
push 0
call dword [edi + 8]
mov ebx, eax
mov dword [ebp - 0x10], 0x496e6957
xor eax, eax
mov dword [ebp - 8], ebx
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0xc], 0x74656e
push eax
call dword [edi + 0x34]
test eax, eax
je 0x402157a8
xor ecx, ecx
push ecx
push 0x80000000
push ecx
push ecx
push esi
push eax
call dword [edi + 0x38]
test eax, eax
je 0x402157a8
lea ecx, [ebp - 0x14]
push ecx
push 0x2800
push ebx
push eax
call dword [edi + 0x3c]
lea edx, [ebp - 0x20]
mov dword [ebp - 0x20], 0x72616548
mov ecx, ebx
mov dword [ebp - 0x1c], 0x61656274
mov word [ebp - 0x18], 0x4074
mov byte [ebp - 0x16], 0
mov dword [ebp - 0x2c], 0x61654823
mov dword [ebp - 0x28], 0x65627472
mov word [ebp - 0x24], 0x7461
mov byte [ebp - 0x22], 0
call fcn.40215a38
lea edx, [ebp - 0x2c]
mov dword [ebp - 0xc], eax
mov ecx, ebx
call fcn.40215a38
mov esi, eax
mov eax, dword [ebp - 0xc]
cmp eax, 0xffffffff
je 0x40215949
cmp esi, 0xffffffff
je 0x40215949
sub esi, eax
sub esi, 0xa
push 0x40
push 0x3000
lea eax, [esi + 1]
push eax
push 0
call dword [edi + 8]
mov ebx, eax
xor edx, edx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
test esi, esi
jle 0x40215844
mov ecx, dword [ebp - 0xc]
add eax, 0xa
add ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, ecx
mov cl, byte [eax + edx]
mov byte [edx + ebx], cl
inc edx
cmp edx, esi
jl 0x40215836
mov eax, dword [ebp - 8]
push 0x8000
push 0
push eax
mov byte [ebx + esi], 0
call dword [edi + 0xc]
push ebx
call dword [edi + 0x14]
push 0x40
push 0x3000
mov dword [ebp - 0xc], eax
lea esi, [eax + 0xa]
push esi
push 0
call dword [edi + 8]
mov ebx, eax
push esi
push ebx
call dword [edi + 0x2c]
mov esi, dword [ebp - 0x14]
push ebx
push esi
call fcn.40215490
pop ecx
pop ecx
cmp eax, 0xffffffff
je 0x40215949
push 0x8000
push 0
push esi
call dword [edi + 0xc]
push 1
push edi
call fcn.4021566a
pop ecx
pop ecx
test eax, eax
je 0x402158af
push 0x8000
push 0
push ebx
call dword [edi + 0xc]
jmp 0x40215944
mov esi, dword [ebp - 0xc]
lea ecx, [ebp - 0x20]
push edi
push esi
mov edx, ebx
call fcn.40215965
mov eax, esi
xor esi, esi
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x14], eax
pop ecx
pop ecx
test eax, eax
jle 0x40215936
mov eax, ebx
mov dword [ebp - 8], ebx
xor cl, cl
mov edx, eax
and dword [ebp - 0xc], 0
mov al, byte [edx]
shl cl, 4
cmp al, 0x30
jl 0x402158ee
cmp al, 0x39
jg 0x402158ee
sub al, 0x30
jmp 0x40215904
cmp al, 0x61
jl 0x402158fa
cmp al, 0x66
jg 0x402158fa
sub al, 0x57
jmp 0x40215904
cmp al, 0x41
jl 0x40215915
cmp al, 0x46
jg 0x40215915
sub al, 0x37
or cl, al
mov eax, dword [ebp - 0xc]
inc edx
inc eax
mov dword [ebp - 0xc], eax
cmp eax, 2
jl 0x402158dd
jmp 0x40215917
xor cl, cl
push 1
lea eax, [ebp - 1]
mov byte [ebp - 1], cl
push eax
lea eax, [esi + ebx]
push eax
call dword [edi + 0x30]
mov eax, dword [ebp - 8]
inc esi
add eax, 2
mov dword [ebp - 8], eax
cmp esi, dword [ebp - 0x14]
jl 0x402158d5
push 0
push 0
push 0
push ebx
push 0
push 0
call dword [edi + 0x18]
xor eax, eax
inc eax
jmp 0x4021594b
xor eax, eax
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret