Function at 0x431580
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov dword [ebp - 0x28], ecx
mov ebx, 0xe62b6af3
mov edi, 0x568c738d
mov eax, dword [0x48e440]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x48f754]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov esi, eax
and esi, 0x80088802
mov edx, ecx
and edx, 0x20203019
and ecx, 0x2d8039eb
or esi, edx
mov edx, eax
and edx, 0x5fd747e4
and eax, 0xd27fc614
xor esi, 0x80088802
or eax, ecx
mov ecx, dword [0x48f750]
or edx, esi
xor eax, 0xd27fc614
mov esi, edx
not esi
and edx, 0xa028b81a
and esi, 0x5fd747e5
or edx, esi
mov esi, edx
not esi
and edx, 0x51ddcc57
and esi, 0xae2233a8
or edx, esi
xor edx, 0x51ddcc57
or eax, edx
mov edx, eax
not edx
and eax, 0x69f4e83d
and edx, 0x960b17c2
or eax, edx
cmp eax, 0x69f4e83d
mov eax, 0x691969a9
sete byte [ebp - 0x11]
cmp ecx, 0xa
setl byte [ebp - 0x12]
jmp 0x431650
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, 0x30497a4
nop dword [eax + eax]
cmp eax, 0x4db50075
jle 0x4317c0
cmp eax, 0x5ac286f8
jle 0x431820
cmp eax, 0x6793d790
jg 0x43188b
cmp eax, 0x5ac286f9
je 0x4319f4
cmp eax, 0x5c269ec0
jne 0x431650
push dword [ebp - 0x18]
call fcn.00431b8c
add esp, 4
mov ecx, dword [0x48f754]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
not edx
mov esi, eax
andn ecx, eax, eax
and esi, 0x5cb0b369
and edx, 0xa34f4c96
or edx, esi
mov esi, ecx
not esi
and ecx, 0xa34f4c96
or eax, esi
and esi, 0x5cb0b369
or ecx, esi
not eax
xor ecx, edx
or eax, ecx
mov edx, eax
xor edx, 0xcc5bb0ed
mov ecx, eax
not ecx
andn esi, eax, edx
mov edx, eax
and edx, 0x33a44f12
and eax, 0x47e82faa
or edx, esi
mov esi, edx
not esi
and edx, 0xcc5bb0ec
and esi, 0x33a44f13
or edx, esi
mov esi, ecx
and esi, 0xb817d055
and ecx, 1
or esi, eax
mov eax, esi
xor eax, 0x1282009
xor esi, 0x88045040
or ecx, eax
and esi, 0xcec45fe2
and ecx, 0x313ba01d
or ecx, esi
xor ecx, 0x313ba01d
or ecx, edx
mov eax, ecx
not eax
and ecx, 0xa2cb6246
and eax, 0x5d349db9
or eax, ecx
xor eax, 0xa2cb6246
setne dl
sete cl
cmp dword [0x48f750], 0xa
setl ah
setge al
mov dh, ah
xor dh, cl
mov bl, dh
and bl, cl
and cl, al
or al, dl
xor al, 1
xor bl, 1
or al, dh
and dh, ah
mov ch, bl
and ah, dl
xor dh, 1
or cl, ah
xor al, 1
xor ch, dh
or dh, bl
or al, cl
mov ebx, 0xe62b6af3
xor dh, 1
xor al, 1
or dh, ch
mov cl, dh
xor cl, al
or al, dh
xor al, 1
or al, cl
mov edx, eax
xor dl, cl
test al, 1
mov eax, 0x6793d791
cmovne eax, edi
test cl, 1
mov ecx, 0x6793d791
cmove eax, edi
test dl, 1
cmove eax, ecx
jmp 0x431650
cmp eax, 0x30497a3
jle 0x431860
cmp eax, 0x3f463579
jle 0x43190b
cmp eax, 0x3f46357a
je 0x4319fe
cmp eax, 0x4572c308
jne 0x431650
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x18]
call fcn.00430590
mov eax, 0x3f46357a
jmp 0x431650
cmp eax, 0x4db50076
je 0x43163e
cmp eax, 0x5247e6be
je 0x431a14
cmp eax, 0x568c738d
jne 0x431650
push dword [ebp - 0x18]
call fcn.00431b8c
add esp, 4
mov eax, 0x5c269ec0
jmp 0x431650
cmp eax, 0x9b23bd27
je 0x431b18
cmp eax, 0xa6b41239
je 0x431b22
cmp eax, 0xe62b6af3
jne 0x431650
mov eax, 0x18d2c2e4
jmp 0x431650
cmp eax, 0x6793d791
je 0x431b34
cmp eax, 0x691969a9
jne 0x431650
mov ah, byte [ebp - 0x11]
movzx edx, byte [ebp - 0x12]
mov al, ah
mov ch, ah
mov cl, ah
mov dh, dl
xor al, 1
or cl, dl
xor dh, 1
and al, ah
xor cl, 1
xor al, 1
xor ch, al
or al, ah
xor ah, dl
xor al, 1
or cl, ah
or al, ch
mov ch, al
and al, dl
mov dl, cl
xor ch, 1
xor dl, 1
and ch, dh
or al, ch
mov ah, al
and al, cl
xor ah, 1
and dl, ah
or ah, cl
mov ecx, 0x18d2c2e4
or dl, al
mov al, ah
xor al, dl
test al, 1
cmovne ecx, ebx
test ah, 1
mov eax, 0x18d2c2e4
cmovne eax, ecx
test dl, 1
cmove eax, ecx
jmp 0x431650
cmp eax, 0x18d2c2e4
jne 0x431b3e
push eax
mov eax, esp
mov dword [ebp - 0x1c], eax
push eax
mov eax, esp
mov dword [ebp - 0x20], eax
push eax
mov eax, esp
mov dword [ebp - 0x24], eax
mov eax, dword [0x48f754]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0x2072cb1d
and eax, 0xdf8d34e2
or ecx, eax
mov eax, ecx
mov edx, ecx
xor edx, 0x9d8c2022
xor eax, 0x2072cb1d
xor ecx, 0x2072cb1c
and ecx, eax
and edx, 0x9d8c2823
and eax, 0x6273d7dc
or eax, edx
xor eax, 0x6273d7dd
or eax, ecx
mov ecx, eax
andn edx, eax, eax
not eax
and ecx, 0xd73bf9de
and eax, 0x28c40621
or ecx, eax
xor ecx, 0xd73bf9de
or edx, ecx
setne ah
cmp dword [0x48f750], 0xa
mov cl, ah
setge al
setl dl
mov ch, al
or cl, al
and dl, ah
xor ch, ah
and cl, ch
mov ch, ah
inc ch
and ch, al
and al, ah
mov ah, cl
xor ah, 1
or al, dl
mov dl, ah
or al, ch
mov ch, ah
and dl, cl
or ah, al
xor ch, dl
xor dl, 1
or dl, cl
mov cl, ah
xor dl, 1
or dl, ch
xor dl, al
xor cl, dl
test ah, ah
mov eax, 0x5ac286f9
cmovne eax, ebx
test dl, 1
mov edx, 0x5ac286f9
cmove eax, ebx
test cl, 1
cmove eax, edx
jmp 0x431650
mov eax, 0xa6b41239
jmp 0x431650
cmp dword [ebp - 0x2c], 0
mov eax, 0x5247e6be
mov ecx, 0x4db50076
cmove eax, ecx
jmp 0x431650
mov ecx, dword [0x48f754]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0xf4fd6e7
mov ecx, eax
and ecx, 0x809d044
and edx, eax
not eax
and eax, 0x74606a3
or ecx, eax
xor ecx, 0x809d044
or edx, ecx
mov eax, edx
not eax
and edx, 0x928a4d7c
and eax, 0x6d75b283
or edx, eax
mov ecx, edx
mov eax, edx
xor edx, 0x42086420
xor ecx, 0x9dc59b9b
xor eax, 0x9dc59b9a
and eax, ecx
and edx, 0x430deeab
and ecx, 0xbcf21154
or ecx, edx
mov edx, eax
not edx
and eax, 0x3cacb764
mov esi, edx
and esi, 0xc353489b
or eax, esi
mov esi, ecx
xor esi, 0x3ca01144
xor ecx, 0x430deeaa
or edx, ecx
and ecx, 0xc353489b
and esi, 0x3cacb764
or esi, ecx
not edx
xor esi, eax
or edx, esi
mov esi, 0x5c269ec0
mov eax, edx
not eax
and edx, 0x14b93dc
and eax, 0xfeb46c23
or eax, edx
xor eax, 0x14b93dc
setne ah
sete dl
cmp dword [0x48f750], 0xa
mov cl, ah
setge al
xor dl, al
xor cl, al
or al, ah
xor dl, 1
xor al, 1
or al, dl
xor al, 1
or al, dl
mov edx, eax
xor dl, cl
xor cl, 1
or cl, al
mov eax, edx
xor al, cl
not al
test al, 1
mov eax, 0x5c269ec0
cmovne esi, edi
test dl, 1
cmovne eax, esi
test cl, 1
cmovne eax, esi
jmp 0x431650
mov eax, 0x4db50076
jmp 0x431650
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov eax, 0x4572c308
jmp 0x431650
mov eax, 0x9b23bd27
jmp 0x431650
cmp eax, 0x30497a4
jne 0x431650
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00431b70
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4