Function at 0x4251e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x460
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x5c], 0x99669b61
mov dword [esp + 0x60], 0xa549a773
mov dword [esp + 0x64], 0xa190a357
mov dword [esp + 0x68], 0xad56af4b
mov dword [esp + 0x6c], 0xa9aaab47
mov dword [esp + 0x70], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x5b
xor cl, byte [esp + eax + 0x5c]
add cl, 0x39
mov byte [esp + eax + 0x5c], cl
inc eax
cmp eax, 0x18
jne case.default.0x425279
lea ebx, [esp + 0x5c]
lea ecx, [esp + 0x34]
push ebx
call fcn.00438830
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x4468b8]
lea ecx, [esp + 0x34]
push 0x410
call fcn.00438a50
not eax
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x4468c0]
jmp dword [0x4468cc]
mov dword [esp + 0x5c], 0x163f601d
mov dword [esp + 0x60], 0x780e3518
mov dword [esp + 0x64], 0xc750f29
mov dword [esp + 0x68], 0x137a0a2d
mov dword [esp + 0x6c], 0x78272e12
mov dword [esp + 0x70], 0x7b5c2a25
mov dword [esp + 0x74], 0x7e715a76
mov dword [esp + 0x78], 0x725b7c67
mov dword [esp + 0x7c], 0x5a68626e
mov dword [esp + 0x80], 0x6a474d69
mov dword [esp + 0x84], 0x87564949
mov word [esp + 0x88], 0
mov byte [esp + 0x8a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x5c]
mov esi, eax
and esi, 0x16
xor esi, 0xbb654d6
mov edx, eax
and edx, 0x29
sub edx, esi
mov esi, edx
and esi, ecx
or edx, ecx
lea ecx, [edx + edx]
not ecx
add ecx, edx
and edx, 0x4018ad5
and ecx, 0xf258712a
or ecx, edx
xor ecx, esi
xor ecx, 0xf258712a
add ecx, 0x3a8fa82d
mov edx, ecx
xor edx, 0x7e
mov esi, ecx
or esi, 1
and esi, edx
xor ecx, 1
lea ecx, [ecx + esi*2]
mov byte [esp + eax + 0x5c], cl
inc eax
cmp eax, 0x2f
jne 0x425320
lea eax, [esp + 0x5c]
lea edx, [esp + 0x50]
lea ecx, [esp + 0x34]
push 0
push 0x2b
push eax
push edx
call fcn.004394f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x5c], 0x163f601d
mov dword [esp + 0x60], 0x780e3518
mov dword [esp + 0x64], 0xc750f29
mov dword [esp + 0x68], 0x137a0a2d
mov dword [esp + 0x6c], 0x78272e12
mov dword [esp + 0x70], 0x7b5c2a25
mov dword [esp + 0x74], 0x7e715a76
mov dword [esp + 0x78], 0x725b7c67
mov dword [esp + 0x7c], 0x5a68626e
mov dword [esp + 0x80], 0x6a474d69
mov dword [esp + 0x84], 0x87564949
mov word [esp + 0x88], 0
mov byte [esp + 0x8a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x5c]
mov esi, eax
and esi, 0x16
xor esi, 0xbb654d6
mov edx, eax
and edx, 0x29
sub edx, esi
mov esi, edx
and esi, ecx
or edx, ecx
lea ecx, [edx + edx]
not ecx
add ecx, edx
and edx, 0x4018ad5
and ecx, 0xf258712a
or ecx, edx
xor ecx, esi
xor ecx, 0xf258712a
add ecx, 0x3a8fa82d
mov edx, ecx
xor edx, 0x7e
mov esi, ecx
or esi, 1
and esi, edx
xor ecx, 1
lea ecx, [ecx + esi*2]
mov byte [esp + eax + 0x5c], cl
inc eax
cmp eax, 0x2f
jne 0x425420
lea eax, [esp + 0x50]
lea ecx, [esp + 0x34]
push 0
push 0x2b
push ebx
push eax
call fcn.004394f0
jmp dword [0x4468d4]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
xor eax, eax
cmp edi, esi
sete al
mov dword [esp + 0x2c], esi
jmp dword [eax*4 + 0x4468d8]
mov eax, esi
sub eax, edi
sar eax, 3
mov edx, eax
and edx, 0x421
mov ecx, eax
or eax, 0x421
imul eax, edx
xor edx, 0x421
and ecx, 0xfffffbde
imul ecx, edx
add eax, ecx
push eax
call fcn.0040c9f0
add esp, 4
jmp dword [0x4468e8]
mov dword [esp + 0x28], 0
lea ecx, [esp + 0x5d]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0xc]
mov dword [esp + 0x48], ecx
xor ecx, ecx
cmp edi, esi
setne cl
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
jmp dword [ecx*4 + 0x4468f0]
mov dword [esp + 0x14], edi
mov edi, ebx
jmp dword [0x446900]
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
mov ebx, dword [eax + 4]
push 0x400
push 0
push edi
call fcn.0040ca70
add esp, 0xc
lea eax, [esp + 8]
lea ecx, [esp + 0x34]
push eax
push 0
push 0x400
push edi
push ebx
push esi
call fcn.00439390
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
mov ebx, dword [eax + 4]
push 0x400
push 0
push edi
call fcn.0040ca70
add esp, 0xc
lea eax, [esp + 8]
lea ecx, [esp + 0x34]
push eax
push 0
push 0x400
push edi
push ebx
push esi
call fcn.00439390
jmp dword [0x44690c]
cmp eax, 0xc0000000
setae al
mov ecx, dword [esp + 8]
or ecx, dword [esp + 0xc]
sete cl
or cl, al
movzx ecx, cl
xor eax, eax
jmp dword [ecx*4 + 0x446910]
mov eax, 1
jmp dword [0x446924]
lea ebx, [esp + 0x5c]
jmp dword [eax*4 + 0x446928]
mov ecx, dword [esp + 0x28]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x4468f8]
mov edi, dword [esp + 0x24]
jmp dword [0x446978]
xor ecx, ecx
test edi, edi
jne 0x425aa7
jmp case.0x425279.0
mov ebx, dword [esp + 0x18]
mov byte [ebx], 0
mov edi, dword [esp + 0x24]
sub ebx, edi
mov esi, dword [ebp + 8]
jmp dword [0x44696c]
cmp edi, esi
je case.0x425279.0
push edi
mov esi, ecx
call fcn.0040ca00
mov ecx, esi
add esp, 4
mov ebx, ecx
lea ecx, [esp + 0x34]
call fcn.00438ba0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret