Function at 0x421600
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov dword [esp], ecx
mov esi, dword [esp + 0x20]
mov ebx, 0x7f405dc1
mov ebp, 0x18dcc10c
mov eax, dword [esp]
add esi, 4
mov dword [eax], vtable.std::exception.0
mov eax, dword [esp]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov eax, dword [esp]
add eax, 4
mov dword [esp + 4], eax
mov eax, 0x2f537938
nop word cs:[eax + eax]
cmp eax, 0x2f537937
jle 0x421680
cmp eax, 0x7f405dc1
je 0x421697
cmp eax, 0x78a55243
je 0x4216ae
cmp eax, 0x2f537938
jne 0x421650
mov dword [esp + 8], esi
mov eax, 0xd77fb8f4
jmp 0x421650
cmp eax, 0xd77fb8f4
je 0x42180a
cmp eax, 0x18dcc10c
jne 0x421650
jmp 0x421930
push dword [esp + 4]
push dword [esp + 0xc]
call fcn.00423700
add esp, 8
mov eax, 0x78a55243
jmp 0x421650
push dword [esp + 4]
push dword [esp + 0xc]
call fcn.00423700
add esp, 8
mov eax, dword [0x45d964]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0x500213
mov edx, eax
and edx, 0xe88b6d6c
and eax, 0x17249080
or ecx, edx
xor ecx, 0x500213
or eax, ecx
mov edx, eax
xor edx, 0xfdc11e05
andn edi, eax, edx
and edx, eax
mov ecx, edi
not ecx
and edi, 0xdbb29c51
mov ebx, ecx
and ebx, 0x244d63ae
or edi, ebx
mov ebx, edx
not ebx
and edx, 0xdbb29c51
or ecx, ebx
and ebx, 0x244d63ae
or edx, ebx
not ecx
xor edx, edi
or ecx, edx
mov edx, ecx
not edx
and ecx, 0xfdc11e04
and edx, 0x23ee1fb
or ecx, edx
mov edx, ecx
not edx
and ecx, 0xbb8bf8f
mov edi, edx
and edi, 0xf4474070
or ecx, edi
mov edi, eax
not edi
and eax, 0xbb8bf8e
or edi, 1
or edx, edi
and edi, 0xf4474070
or eax, edi
not edx
xor eax, ecx
or edx, eax
mov eax, edx
andn ecx, edx, edx
not edx
and eax, 0xf1baa010
and edx, 0xe455fef
or eax, edx
xor eax, 0xf1baa010
or ecx, eax
mov eax, ecx
not eax
and ecx, 0xb92864fd
and eax, 0x46d79b02
or eax, ecx
xor eax, 0x46d79b02
sete ah
setne dl
cmp dword [0x45d960], 0xa
mov dh, ah
setl ch
setge cl
mov al, ch
or dh, cl
or al, dl
and dl, ch
mov ch, cl
xor ch, ah
mov ebx, eax
or al, dh
and ch, cl
and cl, ah
xor bl, dh
xor al, 1
or cl, dl
xor ch, 1
or al, bl
mov ebx, 0x7f405dc1
xor cl, 1
mov dl, ch
xor al, 1
xor dl, cl
or cl, ch
mov ch, al
xor cl, 1
or cl, dl
or ch, cl
xor al, cl
mov cl, ch
xor cl, al
test al, 1
mov eax, 0x7f405dc1
cmovne eax, ebp
test ch, 1
cmovne eax, ebx
test cl, 1
cmove eax, ebp
jmp 0x421650
mov eax, dword [0x45d964]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, ecx
not edx
mov eax, ecx
and eax, 0x81044340
and ecx, 0x64630483
mov edi, edx
and edi, 0x8089820
and edx, 0x1290201c
or eax, edi
or ecx, edx
xor eax, 0x81044340
or eax, 0x1290201c
xor eax, ecx
mov ecx, eax
not ecx
and eax, 0x2c3f488b
and ecx, 0xd3c0b774
or eax, ecx
mov ecx, eax
xor eax, 0x48402404
xor ecx, 0xa53393eb
mov edx, ecx
and eax, 0x4d4225e6
and ecx, 0xb2bdda19
and edx, 0xfffffffe
or ecx, eax
xor ecx, 0xb2bdda18
or ecx, edx
mov eax, ecx
not eax
and ecx, 0x725cd887
and eax, 0x8da32778
or ecx, eax
mov eax, ecx
xor eax, 0x52501805
xor ecx, 0x1a22060
and ecx, 0x21aee0e2
and eax, 0xde511f1d
or eax, ecx
mov ecx, eax
xor ecx, 0x54510119
xor eax, 0x10420c2
and eax, 0x8b043ec6
and ecx, 0x74fbc139
or ecx, eax
cmp ecx, 0x74fbc139
sete dl
cmp dword [0x45d960], 0xa
setge ah
setl al
mov cl, ah
or ah, dl
xor cl, dl
not cl
and cl, dl
xor cl, 1
mov ch, cl
or cl, ah
xor ch, ah
mov ah, al
xor cl, 1
xor al, dl
or ah, dl
or cl, ch
xor ah, 1
mov ch, cl
or al, ah
xor ch, 1
mov edx, eax
xor dl, 1
and dl, ch
or ch, al
and al, cl
or al, dl
mov cl, ch
mov edx, 0x78a55243
xor cl, al
test al, 1
mov eax, 0x7f405dc1
cmovne eax, edx
test ch, 1
cmovne eax, ebx
test cl, 1
cmove eax, edx
jmp 0x421650
mov eax, dword [esp]
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret 4