Function at 0x443410
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov dword [ebp - 0x24], ecx
mov eax, dword [0x4a1840]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov edx, dword [0x4a2b6c]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
not edx
mov esi, eax
xor esi, 0xfffffffe
andn esi, eax, esi
and eax, 0x56007c9e
and edx, 0xa9ff8361
or edx, eax
mov ebx, esi
not ebx
and esi, 0xd9444d7b
mov ecx, edx
xor ecx, 0x89440160
xor edx, 0x56007c9f
mov edi, ebx
and edi, 0x26bbb284
or ebx, edx
and edx, 0x26bbb284
and ecx, 0xd9444d7b
or esi, edi
or ecx, edx
not ebx
xor ecx, esi
mov esi, 0xe6613d3b
or ebx, ecx
mov ecx, dword [0x4a2b68]
mov edx, ebx
not edx
and ebx, 0xc0c2d8e
and edx, 0xf3f3d271
or ebx, edx
cmp ebx, 0xc0c2d8e
sete byte [ebp - 0x11]
cmp ecx, 0xa
setl byte [ebp - 0x12]
nop word cs:[eax + eax]
cmp esi, 0xea78353a
jle 0x443620
cmp esi, 0xea78353b
je 0x4436e0
cmp esi, 0x368dbb57
je 0x443729
cmp esi, 0x61a115a5
jne 0x4434c0
push eax
mov eax, esp
mov dword [ebp - 0x1c], eax
push eax
mov eax, esp
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov dword [eax], ecx
mov eax, dword [0x4a2b6c]
lea edi, [eax + 1]
imul edi, eax
mov esi, edi
not esi
mov ebx, edi
and ebx, 0x5a31ce85
mov eax, esi
and eax, 0xa5ce317a
and esi, 0xb8f49f23
or ebx, eax
mov ecx, ebx
xor ebx, 0x21c0014a
xor ecx, 0x8108404
or ebx, 0xd62e7ab0
and ecx, 0x950840e
mov edx, ebx
and edx, 0x668359f1
or ecx, edx
mov edx, edi
xor edx, 0x29d1854f
and edx, edi
and edi, 0x470b60dc
mov eax, edx
not eax
and edx, 0x997ca60e
or esi, edi
mov edi, 0xea78353b
or ebx, eax
and eax, 0x668359f1
or edx, eax
not ebx
xor edx, ecx
or ebx, edx
mov eax, ebx
not eax
and ebx, 0xff980693
and eax, 0x67f96c
or ebx, eax
mov eax, ebx
xor eax, 0x90408301
xor ebx, 0x29b67c22
mov ecx, ebx
and ecx, 0x470b60dc
and eax, 0xb8f49f23
or eax, ecx
xor esi, eax
not esi
or esi, ebx
cmp esi, 0xffffffff
mov esi, 0xea78353b
sete ah
cmp dword [0x4a2b68], 0xa
setge bl
setl cl
mov edx, ebx
xor dl, ah
xor dl, 1
or bl, dl
and dl, ah
xor ah, cl
mov al, bl
and ah, cl
not al
or ah, dl
mov edx, 0xc79d6c3a
and al, bl
xor al, 1
mov ecx, eax
or al, bl
xor cl, bl
xor al, 1
or al, cl
xor al, ah
xor ah, 1
or ah, bl
mov cl, ah
xor cl, al
test cl, 1
cmovne edi, edx
test ah, ah
cmovne esi, edi
test al, 1
cmove esi, edi
jmp 0x4434c0
cmp esi, 0xc79d6c3a
je 0x4436ea
cmp esi, 0xc85a7d7b
je 0x4436f4
cmp esi, 0xe6613d3b
jne 0x4434c0
movzx eax, byte [ebp - 0x11]
movzx edx, byte [ebp - 0x12]
mov edi, 0x61a115a5
mov ecx, 0xc79d6c3a
mov esi, 0x61a115a5
mov ebx, edx
mov dh, dl
mov ah, al
xor bl, 1
xor ah, 1
and bl, dl
xor bl, 1
xor dh, bl
or bl, dl
xor bl, 1
or bl, dh
mov edx, ebx
mov dh, bl
xor dl, 1
mov bh, dl
and ah, dl
or dl, al
and bh, bl
xor bh, 1
xor dh, bh
or bh, bl
and bl, al
xor bh, 1
or bl, ah
or bh, dh
xor bl, 1
xor bh, al
mov eax, ebx
or bl, dl
xor al, dl
xor bl, 1
or bl, al
mov edx, ebx
xor dl, 1
mov eax, edx
and al, bl
xor al, 1
mov ah, al
or al, bl
xor ah, bl
xor al, 1
or al, ah
mov ah, dl
or dl, bh
xor ah, bh
xor dl, 1
xor al, bh
or dl, ah
mov ah, dl
xor ah, al
test ah, 1
cmovne edi, ecx
test dl, 1
cmovne esi, edi
test al, 1
cmove esi, edi
jmp 0x4434c0
mov esi, 0xc85a7d7b
jmp 0x4434c0
mov esi, 0x61a115a5
jmp 0x4434c0
mov eax, dword [ebp - 0x20]
mov esi, 0x368dbb57
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [eax], vtable.std::exception.0
mov eax, dword [ebp - 0x18]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [ebp - 0x28], eax
jmp 0x4434c0
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
add eax, 4
push dword [ebp - 0x28]
push eax
call fcn.004460e0
add esp, 8
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00444f90
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4