Function at 0x424490
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x158
mov dword [esp + 0x10], 0xabebad81
mov dword [esp + 0x14], 0xd746a938
mov dword [esp + 0x18], 0xd3b3d598
mov dword [esp + 0x1c], 0xdfbfd14c
mov dword [esp + 0x20], 0xdbdaddf1
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2b], 0
mov dword [esp + 0xbc], 0
mov ecx, dword [esp + 0xbc]
cmp ecx, 0x1e
ja 0x424553
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xbc]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + 0x3a]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0x2594bc3a
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0xd8]
add cl, 0x6a
mov edx, dword [esp + 0xbc]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xbc]
mov ecx, dword [esp + 0xbc]
cmp ecx, 0x1f
jb 0x424500
lea esi, [esp + 0x12a]
lea edx, [esp + 0x10]
mov ecx, 5
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x13e]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x80]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x449c34]
mov ebx, dword [esp + 0x80]
test ebx, ebx
jns 0x4245a2
mov eax, 0xffffffff
jmp 0x4245a5
lea eax, [ebx + ebx]
push eax
call fcn.004090b0
add esp, 4
push edi
push ebx
mov dword [esp + 0x78], eax
push eax
push 9
push esi
push 0
call dword [0x449c34]
mov dword [esp + 0x10], 0x8beb85c2
mov dword [esp + 0x14], 0x8fed891f
mov dword [esp + 0x18], 0xb31a8d1f
mov dword [esp + 0x1c], 0xb7b0b1d6
lea edx, [esp + 0x20]
mov byte [esp + 0x20], 0
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xbc]
cmp eax, 0x10
ja 0x42465a
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xbc]
movzx ecx, byte [esp + ecx + 0x10]
lea esi, [eax - 0x5146d5eb]
add eax, 0x15
and eax, ecx
or esi, ecx
sub esi, eax
mov dword [esp + 0xd8], esi
mov eax, dword [esp + 0xd8]
mov ecx, eax
or ecx, 0x6c
and eax, 0x6c
add eax, ecx
inc al
mov ecx, dword [esp + 0xbc]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xbc]
mov eax, dword [esp + 0xbc]
cmp eax, 0x11
jb 0x424600
lea edi, [esp + 0x11a]
lea esi, [esp + 0x10]
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x12a]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x10], 0xc373c58a
mov dword [esp + 0x14], 0xcf6dc17f
mov dword [esp + 0x18], 0xcb72cd7f
mov dword [esp + 0x1c], 0xd785c966
mov dword [esp + 0x20], 0xd366d579
mov dword [esp + 0x24], 0xdf6ed17d
mov dword [esp + 0x28], 0xdbdcdd59
lea esi, [esp + 0x2c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x24
ja 0x42474c
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx + 0x41f1e3e1]
mov ebx, edx
not ebx
or ebx, edi
and edi, edx
add edi, ebx
neg edi
add ecx, edi
add ecx, 0x41f1e3e0
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0xd8]
add cl, 0xd9
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x25
jb 0x4246f0
lea edx, [esp + 0xbc]
lea ebx, [esp + 0x10]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xd8]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x10], 0xb32bb174
mov dword [esp + 0x14], 0xb715b527
mov dword [esp + 0x18], 0xab38a937
mov dword [esp + 0x1c], 0xaf1ead08
mov dword [esp + 0x20], 0xa360a114
lea ebx, [esp + 0x24]
mov word [esp + 0x24], 0xa5a4
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x1b
ja 0x42483a
nop
nop
nop
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0xa0]
movzx edi, byte [esp + esi + 0x10]
lea esi, [ecx - 0x82a6538]
mov eax, esi
and eax, edi
xor esi, edi
add ecx, 0xc8
and ecx, edi
add ecx, eax
sub esi, ecx
lea eax, [esi + eax*2]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
mov ecx, eax
xor ecx, 0x87
and eax, 7
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 0x1c
jb 0x4247d0
lea esi, [esp + 0x13e]
lea eax, [esp + 0x10]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x152]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0x11a]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], esi
mov ebx, dword [esp + 0x70]
mov eax, ebx
add eax, 2
mov dword [esp + 0x8c], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x74], 0
cmp ecx, 3
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x444a78]
jmp dword [0x444b40]
mov dword [esp + 0x94], ecx
mov eax, dword [esp + ecx*4 + 0x10c]
mov esi, 0xfffffffe
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x4248f0
mov dword [esp + 0x6c], eax
mov eax, esi
sar eax, 1
mov dword [esp + 0x98], eax
mov dword [esp + 0x10], 0x4b0845fa
mov dword [esp + 0x14], 0x4fed49db
mov dword [esp + 0x18], 0xb3e04de9
mov dword [esp + 0x1c], 0xb705b1d2
mov dword [esp + 0x20], 0xbb13b522
mov dword [esp + 0x24], 0xbf13b92e
mov word [esp + 0x28], 0xbdbe
mov dword [esp + 0x2e], 0
mov dword [esp + 0x2a], 0
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x58]
cmp eax, 0x21
ja 0x4249c6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
movzx edx, byte [esp + ecx + 0x10]
lea edi, [eax - 0x6dc9358b]
lea ecx, [eax + edx]
add ecx, 0x9236ca75
and edi, edx
add eax, 0x75
and eax, edx
add eax, edi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
add al, 0xcd
mov ecx, dword [esp + 0x58]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x58]
mov eax, dword [esp + 0x58]
cmp eax, 0x22
jb 0x424970
lea edi, [esp + 0xa0]
lea eax, [esp + 0x10]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x28]
lea edi, [esp + 0xb8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x98]
lea ecx, [edx + eax]
add ecx, 0xd
test ecx, ecx
jns 0x424a10
mov eax, 0xffffffff
jmp 0x424a17
add eax, edx
add eax, eax
add eax, 0x1a
push eax
call fcn.004090b0
add esp, 4
mov edi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x424a51
mov edx, dword [esp + 0x8c]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424a40
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx]
test cx, cx
je 0x424a81
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424a70
mov word [eax], 0
movzx ecx, word [esp + 0xa0]
test cx, cx
je 0x424ab1
lea edx, [esp + 0xa2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424aa0
mov word [eax], 0
lea eax, [esp + 0x7c]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.0043aef0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444a80]
xor ebx, ebx
jmp dword [0x444af0]
lea eax, [esp + 0x9c]
push 0
push eax
push dword [esp + 0x84]
call fcn.0043b260
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x90], edi
jmp dword [eax*4 + 0x444a88]
mov edi, dword [esp + 0x9c]
lea eax, [edi + 1]
push eax
call fcn.004090b0
add esp, 4
push 0
push edi
mov dword [esp + 0x90], eax
push eax
push dword [esp + 0x88]
call fcn.0043b350
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444a90]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x88]
mov byte [ecx + eax], 0
push ecx
call fcn.00401f40
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x444a98]
mov dword [esp + 0x84], eax
push eax
call fcn.004029c0
add esp, 4
mov dword [esp + 0x10], 0xf8fdeaef
mov dword [esp + 0x14], 0xdbe6dce6
mov dword [esp + 0x18], 0xf0e4ec26
mov dword [esp + 0x1c], 0x231e241e
mov dword [esp + 0x20], 0x100d1515
mov word [esp + 0x24], 0x2c19
mov byte [esp + 0x26], 0xa6
lea ecx, [esp + 0x28]
mov byte [ecx + 1], 0
mov word [ecx - 1], 0
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x58]
cmp ecx, 0x19
ja 0x424c42
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x58]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx + edx]
add edi, 0x6db9e1f4
add ecx, 0x6db9e1f4
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esp + 0xd8], edi
mov ecx, dword [esp + 0xd8]
mov edx, ecx
xor edx, 0x53
and ecx, 0x53
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x58]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x1a
jb 0x424bf0
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00402da0
add esp, 8
mov ecx, 0xffffffff
mov edx, 0xfffffffe
mov edi, 0xfffffffd
nop
add edx, 2
add edi, 3
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x424c60
shr edi, 2
mov dword [esp + 0x48], ecx
movzx ecx, byte [eax + ecx - 1]
cmp ecx, 0x3d
je 0x424c86
cmp ecx, 0x2e
jne 0x424c87
dec edi
mov ebx, dword [esp + 0x48]
mov ecx, ebx
xor ecx, 0xfffffffd
and edx, 0xfffffffa
add edx, ecx
cmp byte [eax + edx + 1], 0x3d
mov dword [esp + 0x78], eax
je 0x424ca7
cmp byte [eax + ebx - 2], 0x2e
jne 0x424ca8
dec edi
mov dword [esp + 0x108], edi
lea eax, [edi + 1]
push eax
call fcn.004090b0
add esp, 4
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x48], 0
je 0x424dd3
xor edx, edx
mov edi, 2
jmp 0x424cf0
mov edx, dword [esp + 0x50]
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x424dd3
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x78]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00418c40
add esp, 4
mov byte [esp + 0x50], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00418c40
mov edx, dword [esp + 8]
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0x50]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x4c]
mov byte [ecx + edx], al
mov ecx, dword [esp + 0x48]
inc edx
cmp edi, ecx
jae 0x424ce0
mov eax, dword [esp + 0x78]
movzx eax, byte [eax + edi]
push eax
mov dword [esp + 0x54], edx
call fcn.00418c40
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp al, 0x40
je 0x424ce0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edx, dword [esp + 4]
lea ecx, [edx + 2]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x4c]
mov byte [ecx + edx + 1], al
mov ecx, dword [esp + 0x48]
lea eax, [edi + 1]
cmp eax, ecx
jae 0x424cd3
mov eax, dword [esp + 0x78]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00418c40
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x50]
je 0x424ce0
shl bl, 6
mov ecx, eax
and cl, bl
add cl, cl
xor bl, al
add bl, cl
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 4]
mov byte [eax + edx + 2], bl
add edx, 3
jmp 0x424ce0
mov eax, dword [esp + 0x108]
add eax, 0xfffffffb
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x4c]
add eax, 5
mov dword [esp + 0x5c], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
push 0x932a8d34
push dword [0x449c44]
call fcn.0043a320
add esp, 8
lea ecx, [esp + 8]
lea edx, [esp + 0x58]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444aa0]
mov dword [esp + 4], 0
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x4c]
jmp dword [0x444ab0]
mov dword [esp + 0xd8], 0xcb76cdbf
mov dword [esp + 0xdc], 0xc7b4c978
mov dword [esp + 0xe0], 0xc34ac548
mov dword [esp + 0xe4], 0xdfdec14c
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
cmp eax, 0xf
ja 0x424ee3
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [esp + ecx + 0xd8]
lea edx, [eax + ecx]
add edx, 0xf6e4cfe2
add eax, 0xf6e4cfe2
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp], edx
mov eax, dword [esp]
mov ecx, eax
or ecx, 0xd1
and eax, 0xd1
add eax, ecx
inc al
mov ecx, dword [esp + 0x54]
mov byte [esp + ecx + 0xd8], al
inc dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp eax, 0x10
jb 0x424e90
lea eax, [esp + 0xd8]
mov ecx, 4
lea edi, [esp + 0x10]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0xe8]
xor ecx, ecx
lea edi, [esp + 0x20]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
cmp esi, 0xffffffef
jge 0x424f15
mov eax, 0xffffffff
jmp 0x424f18
lea eax, [esi + 0x10]
push eax
call fcn.004090b0
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x6c]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x424f51
mov eax, dword [esp + 0x6c]
lea edx, [eax + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424f40
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x424f81
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424f70
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 8]
push dword [esp + 0x10]
push edi
call fcn.00409870
mov dword [esp + 4], eax
jmp dword [0x444aa8]
push edi
call fcn.004090c0
add esp, 4
push 0x2e0ec9bb
push dword [0x449c2c]
call fcn.0043a320
add esp, 8
push dword [esp + 0xc]
call eax
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x4c]
jmp dword [0x444ab0]
jmp dword [0x444abc]
push ebx
call fcn.004090c0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
call fcn.004090c0
add esp, 4
jmp dword [0x444ac4]
mov ebx, dword [esp + 4]
jmp dword [0x444ac8]
push edi
call fcn.00402f90
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00402f90
add esp, 4
jmp dword [0x444ad4]
mov eax, dword [case.0x4248a3.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x444ae8]
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x28292e2f
lea eax, [esp + 0x28]
mov word [eax - 0xc], 0
mov dword [eax - 0x10], 0
mov dword [eax - 0x14], 0
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x58]
cmp eax, 0xd
ja 0x4250d6
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0xd5910c5a
add eax, 0xd5910c5a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0xd8]
add al, 0x8a
mov ecx, dword [esp + 0x58]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x58]
mov eax, dword [esp + 0x58]
cmp eax, 0xe
jb 0x425090
mov ecx, dword [0x449c38]
test ecx, ecx
je 0x425110
mov edx, dword [esp + 0x10]
xor edi, edi
mov eax, dword [0x449c3c]
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0x11081610
je 0x425100
inc edi
cmp ecx, edi
jne 0x4250f0
jmp 0x425110
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
jne 0x425123
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x90]
jmp dword [0x444af0]
push dword [esp + 4]
push 1
push dword [0x449c40]
push eax
call fcn.00438170
add esp, 0x10
mov edi, dword [esp + 0x90]
jmp dword [0x444af0]