Function at 0x440af0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x298
mov ebx, dword [0x45639c]
mov ebp, dword [0x456398]
mov eax, ebp
or eax, ebx
jne 0x440bd8
mov dword [esp + 0x90], 0x29be2bb6
mov dword [esp + 0x94], 0x2d422f4c
mov dword [esp + 0x98], 0x51005340
mov dword [esp + 0x9c], 0x553a5734
mov dword [esp + 0xa0], 0x595a5b38
mov byte [esp + 0xa4], 0
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x50]
cmp eax, 0x14
ja 0x440bb1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
movzx ecx, byte [esp + ecx + 0x90]
mov edx, eax
xor edx, 0x52fd7237
and eax, 0xd2fd7237
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x198], edx
mov eax, dword [esp + 0x198]
add al, 0xed
mov ecx, dword [esp + 0x50]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
cmp eax, 0x15
jb 0x440b60
lea eax, [esp + 0x90]
push eax
call fcn.00440920
add esp, 4
mov ebp, eax
mov dword [0x45639c], edx
mov dword [0x456398], eax
or eax, edx
je 0x440ca9
mov ebx, edx
lea eax, [esp + 0x50]
push 0x40
push eax
push ebx
push ebp
call fcn.004406e0
add esp, 0x10
test eax, eax
js 0x440ca9
mov eax, dword [esp + 0x8c]
mov ecx, eax
sar ecx, 0x1f
add eax, ebp
adc ecx, ebx
lea edx, [esp + 0x90]
push 0x108
push edx
push ecx
push eax
call fcn.004406e0
add esp, 0x10
xor edi, edi
test eax, eax
js 0x440cab
cmp dword [esp + 0x11c], 0
je 0x440cab
mov eax, dword [esp + 0x118]
mov esi, 0
test eax, eax
je 0x440cad
add eax, ebp
mov ecx, ebx
adc ecx, 0
lea edx, [esp + 0x28]
push 0x28
push edx
push ecx
push eax
call fcn.004406e0
add esp, 0x10
test eax, eax
js 0x440ca9
mov ecx, dword [esp + 0x3c]
lea esi, [ecx*4]
mov eax, 0xffffffff
cmp ecx, 0x40000000
jae 0x440c72
mov eax, esi
push eax
call fcn.0040c8e0
add esp, 4
mov edx, dword [esp + 0x44]
add edx, ebp
mov ecx, ebx
adc ecx, 0
push esi
mov dword [esp + 0x14], eax
push eax
push ecx
push edx
call fcn.004406e0
add esp, 0x10
test eax, eax
js 0x440cbc
mov eax, dword [esp + 0x3c]
test eax, eax
jns 0x440cc5
mov eax, 0xffffffff
jmp 0x440cc7
xor edi, edi
xor esi, esi
mov eax, edi
mov edx, esi
add esp, 0x298
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
xor esi, esi
jmp 0x440ee2
add eax, eax
push eax
call fcn.0040c8e0
add esp, 4
mov esi, dword [esp + 0x40]
add esi, esi
mov ecx, dword [esp + 0x4c]
add ecx, ebp
mov edx, ebx
adc edx, 0
push esi
mov dword [esp + 0x10], eax
push eax
push edx
push ecx
call fcn.004406e0
add esp, 0x10
test eax, eax
js 0x440ed2
mov ecx, dword [esp + 0x40]
lea esi, [ecx*4]
mov eax, 0xffffffff
cmp ecx, 0x40000000
jae 0x440d13
mov eax, esi
push eax
call fcn.0040c8e0
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x48]
add eax, ebp
mov ecx, ebx
adc ecx, 0
push esi
push edi
push ecx
push eax
call fcn.004406e0
add esp, 0x10
test eax, eax
mov dword [esp + 8], edi
js 0x440ec0
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
cmp esi, eax
jb 0x440d4f
mov esi, eax
test esi, esi
je 0x440ec0
xor eax, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], esi
jmp 0x440d8e
mov edx, 0xb14a5e2
cmp edx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
je 0x440ef3
mov eax, dword [esp + 0x14]
inc eax
cmp eax, esi
je 0x440ec0
mov dword [esp + 0x14], eax
mov eax, dword [edi + eax*4]
add eax, ebp
mov ecx, ebx
adc ecx, 0
push 0x100
lea edx, [esp + 0x19c]
push edx
push ecx
push eax
call fcn.004406e0
add esp, 0x10
cmp eax, 0xbfffffff
ja 0x440d81
mov eax, 0xffffffff
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
cmp byte [esp + eax + 0x199], 0
lea eax, [eax + 1]
lea edx, [edx + 1]
jne 0x440dd0
mov dword [esp + 4], 0xfefef84f
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 3
ja 0x440e41
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 4]
mov ebp, edx
xor ebp, 0x69bf29aa
and edx, 0xe9bf29aa
lea edx, [edx*2]
add edx, ebp
xor edx, esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x24]
add dl, 0xae
mov esi, dword [esp]
mov byte [esp + esi + 4], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 4
jb 0x440e00
test eax, eax
je 0x440d67
mov esi, dword [esp + 4]
mov edx, 0xb14a5e2
lea ebp, [esp + 0x198]
cmp eax, 1
je 0x440ea2
and ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ebx, byte [ebp]
mov edi, edx
and edi, ebx
add edx, ebx
add edi, edi
sub edx, edi
imul edx, esi
movsx edi, byte [ebp + 1]
add ebp, 2
mov ebx, edx
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
imul edx, esi
add ecx, 0xfffffffe
jne 0x440e70
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 8]
test al, 1
je 0x440d6c
movsx eax, byte [ebp]
mov ecx, edx
and ecx, eax
add edx, eax
add ecx, ecx
sub edx, ecx
imul edx, esi
jmp 0x440d6c
xor edi, edi
xor esi, esi
push dword [esp + 8]
call fcn.0040c8f0
add esp, 4
jmp 0x440ed6
xor edi, edi
xor esi, esi
push dword [esp + 0xc]
call fcn.0040c8f0
add esp, 4
push dword [esp + 0x10]
call fcn.0040c8f0
add esp, 4
jmp 0x440cad
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x10]
add ebp, dword [ecx + eax*4]
adc ebx, 0
mov edi, ebp
mov esi, ebx
jmp 0x440ec4