Function at 0x4225b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa08
mov dword [esp + 0xc0], 0xe3bfe1bd
mov dword [esp + 0xc4], 0xe772e571
mov dword [esp + 0xc8], 0xdb46d941
mov dword [esp + 0xcc], 0xdf4add45
mov dword [esp + 0xd0], 0xd38fd159
mov dword [esp + 0xd4], 0xd743d547
mov dword [esp + 0xd8], 0xcb97c96a
mov dword [esp + 0xdc], 0xcf47cd58
mov dword [esp + 0xe0], 0xc367c150
mov dword [esp + 0xe4], 0xc758c589
mov dword [esp + 0xe8], 0x3bae399d
mov dword [esp + 0xec], 0x3fa13dab
mov dword [esp + 0xf0], 0x33a931a2
mov dword [esp + 0xf4], 0x37ab356a
mov dword [esp + 0xf8], 0x2bb029b7
mov dword [esp + 0xfc], 0x2fb32db3
mov dword [esp + 0x100], 0x239c217e
mov dword [esp + 0x104], 0x27b22581
mov dword [esp + 0x108], 0x1b85198f
mov dword [esp + 0x10c], 0x1f851d8e
mov dword [esp + 0x110], 0x13b711a3
mov dword [esp + 0x114], 0x17801586
mov dword [esp + 0x118], 0xba90991
mov dword [esp + 0x11c], 0xf0e0da9
mov eax, 0xd305a158
mov ecx, 0xa7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x2cfa5f68]
mov esi, ecx
and esi, 0xb8
mov edi, eax
and edi, 0x47
or edi, esi
xor edi, 0x47
mov esi, edx
not esi
or esi, edi
lea edi, [edx + edx]
not edi
add edi, edx
add edx, esi
inc edx
and edi, eax
or edx, edi
add dl, 0x48
mov byte [esp + eax + 0x2cfa5f68], dl
inc eax
dec ecx
cmp eax, 0xd305a1b8
jne 0x4226e0
lea edi, [esp + 0x60]
lea eax, [esp + 0xc0]
mov ecx, 0x18
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xc0]
lea edx, [esp + 0x120]
xor eax, eax
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x2c], 0
mov dword [esp + 0xc0], 0x585b5a45
mov byte [esp + 0xc4], 0
mov ecx, 0xffffffff
xor edx, edx
mov dword [esp + 4], eax
movzx edi, byte [esp + edx + 0xc0]
mov esi, edx
xor esi, 0xb038c6f
lea eax, [ecx + esi]
inc eax
and eax, edi
add eax, eax
mov ebx, eax
sub ebx, esi
sub esi, eax
mov eax, dword [esp + 4]
add ebx, eax
xor ebx, edi
add esi, ecx
and esi, edi
add esi, esi
sub esi, ebx
mov ebx, esi
and ebx, 0x54
add ebx, ebx
xor esi, 0x2b
sub ebx, esi
mov byte [esp + edx + 0xc0], bl
inc edx
add ecx, 2
add eax, 0xfffffffe
cmp edx, 5
jne 0x422770
mov eax, dword [esp + 0xc0]
mov ecx, dword [0x450e9c]
test ecx, ecx
je 0x422814
xor edx, edx
mov esi, dword [0x450ea0]
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xc85f7986
je 0x4227f0
inc edx
cmp ecx, edx
jne 0x4227e0
jmp 0x422814
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x422814
lea eax, [esp + 0x2c]
push eax
push 0
push 0
push 5
push 4
push dword [0x450ea4]
push ecx
call fcn.00441230
add esp, 0x1c
cmp eax, 0xc0000004
jne 0x4228e0
push dword [esp + 0x2c]
call fcn.0043dd20
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov dword [esp + 0xc0], 0x585b5a45
mov byte [esp + 0xc4], 0
mov eax, 0xffffffff
xor edx, edx
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], edx
movzx ecx, byte [esp + esi + 0xc0]
mov edi, esi
xor edi, 0xb038c6f
lea edx, [eax + edi]
inc edx
and edx, ecx
add edx, edx
mov ebx, edx
sub ebx, edi
sub edi, edx
mov edx, dword [esp + 4]
add ebx, edx
xor ebx, ecx
add edi, eax
and edi, ecx
add edi, edi
sub edi, ebx
mov ecx, edi
and ecx, 0x54
add ecx, ecx
xor edi, 0x2b
sub ecx, edi
mov byte [esp + esi + 0xc0], cl
inc esi
add eax, 2
add edx, 0xfffffffe
cmp esi, 5
jne 0x422860
mov eax, dword [esp + 0xc0]
mov ecx, dword [0x450e9c]
test ecx, ecx
je 0x4228ee
xor edx, edx
mov esi, dword [0x450ea0]
mov edi, dword [ebp + 8]
nop
nop
nop
cmp dword [esi + edx*8], 0xc85f7986
je 0x4228f3
inc edx
cmp ecx, edx
jne 0x4228d0
jmp 0x422918
xor ecx, ecx
xor edx, edx
xor esi, esi
mov ebx, dword [ebp + 0x14]
jmp 0x422eda
mov edi, dword [ebp + 8]
jmp 0x422918
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x422918
push 0
push dword [esp + 0x10]
push dword [esp + 0x28]
push 5
push 4
push dword [0x450ea4]
push ecx
call fcn.00441230
add esp, 0x1c
test eax, eax
mov ebx, dword [ebp + 0x14]
js 0x422eaa
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov dword [esp + 0x14], 0
mov edx, ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
jmp 0x422965
mov ecx, ebx
call fcn.0043e1c0
mov edx, dword [esp + 0xc]
mov eax, dword [edx]
test eax, eax
je 0x422ec2
mov ecx, dword [edx + eax + 0x3c]
add eax, edx
mov dword [esp + 0xc], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx + eax]
movzx esi, word [edi + eax]
test dx, dx
je 0x422995
add eax, 2
cmp dx, si
je 0x422980
cmp dx, si
jne 0x422957
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x44]
mov dword [ebx + 8], eax
mov eax, dword [ecx + 0xdc]
mov dword [ebx + 0xc], eax
mov ecx, ebx
push 0x410
call fcn.0043e020
test eax, eax
js 0x422957
mov dword [esp + 0x28], 0
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc0], 0x585b5a45
mov byte [esp + 0xc4], 0
mov eax, 0xffffffff
xor edx, edx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], edx
movzx esi, byte [esp + ecx + 0xc0]
mov edi, ecx
xor edi, 0xb038c6f
lea edx, [eax + edi]
inc edx
and edx, esi
add edx, edx
mov ebx, edx
sub ebx, edi
sub edi, edx
mov edx, dword [esp + 4]
add ebx, edx
xor ebx, esi
add edi, eax
and edi, esi
add edi, edi
sub edi, ebx
mov ebx, edi
and ebx, 0x54
add ebx, ebx
xor edi, 0x2b
sub ebx, edi
mov byte [esp + ecx + 0xc0], bl
inc ecx
add eax, 2
add edx, 0xfffffffe
cmp ecx, 5
jne 0x4229f0
mov eax, dword [esp + 0xc0]
mov ecx, dword [0x450e9c]
test ecx, ecx
je 0x422aa0
xor edx, edx
mov esi, dword [0x450ea0]
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x62429966
je 0x422a70
inc edx
cmp ecx, edx
jne 0x422a60
jmp 0x422aa0
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x422aa0
lea eax, [esp + 0x28]
push eax
push 0
push 0
push 0x2b
push dword [esp + 0x20]
push 5
push dword [0x450ea4]
push ecx
call fcn.00441230
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0xc0000004
mov ebx, dword [ebp + 0x14]
jne 0x422b80
mov eax, dword [esp + 0x28]
add eax, 2
push eax
call fcn.0043dd20
add esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [ebx]
mov dword [esp + 8], eax
mov dword [esp + 0xc0], 0x585b5a45
mov byte [esp + 0xc4], 0
mov eax, 0xffffffff
xor edi, edi
xor edx, edx
nop
nop
nop
nop
mov dword [esp + 4], edi
movzx esi, byte [esp + edx + 0xc0]
mov ecx, edx
xor ecx, 0xb038c6f
lea edi, [eax + ecx]
inc edi
and edi, esi
add edi, edi
mov ebx, edi
sub ebx, ecx
sub ecx, edi
mov edi, dword [esp + 4]
add ebx, edi
xor ebx, esi
add ecx, eax
and ecx, esi
add ecx, ecx
sub ecx, ebx
mov ebx, ecx
and ebx, 0x54
add ebx, ebx
xor ecx, 0x2b
sub ebx, ecx
mov byte [esp + edx + 0xc0], bl
inc edx
add eax, 2
add edi, 0xfffffffe
cmp edx, 5
jne 0x422af0
mov eax, dword [esp + 0xc0]
mov ecx, dword [0x450e9c]
test ecx, ecx
je 0x422b88
mov ebx, dword [esp + 0x24]
add ebx, 2
xor edx, edx
mov esi, dword [0x450ea0]
mov edi, dword [ebp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x62429966
je 0x422b8d
inc edx
cmp ecx, edx
jne 0x422b70
jmp 0x422bb3
mov edi, dword [ebp + 8]
jmp 0x422e8f
mov edi, dword [ebp + 8]
jmp 0x422bb3
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x422bb3
push 0
push ebx
push dword [esp + 0x18]
push 0x2b
push dword [esp + 0x18]
push 5
push dword [0x450ea4]
push ecx
call fcn.00441230
add esp, 0x20
test eax, eax
mov ebx, dword [ebp + 0x14]
js 0x422e83
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx]
shr eax, 1
mov ecx, dword [ecx + 4]
xor edx, edx
nop
nop
nop
nop
cmp eax, edx
je 0x422beb
mov esi, dword [ebp + 0xc]
movzx esi, word [esi + edx*2]
cmp si, word [ecx + edx*2]
jne 0x422e83
inc edx
test si, si
jne 0x422bd0
mov ecx, ebx
call fcn.0043e6b0
cmp eax, 2
jne 0x422e83
mov ecx, ebx
push 0
push 0x30
lea eax, [esp + 0x38]
push eax
push 0
call fcn.0043e4d0
test eax, eax
js 0x422e83
mov ecx, ebx
push 0
push 0
push 0x28
lea eax, [esp + 0x684]
push eax
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.0043e9e0
test eax, eax
js 0x422e83
mov ecx, ebx
push 0
push 0
push 0x80
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x6ac]
push dword [esp + 0x6ac]
call fcn.0043e9e0
test eax, eax
js 0x422e83
movzx eax, word [esp + 0x132]
push eax
call fcn.0043dd20
add esp, 4
mov esi, eax
movzx eax, word [esp + 0x132]
mov ecx, ebx
push 0
push 0
push eax
push esi
push dword [esp + 0x14c]
push dword [esp + 0x14c]
call fcn.0043e9e0
test eax, eax
js 0x422e7a
movzx edi, word [esp + 0x60]
mov dword [esp + 8], esi
mov eax, esi
test di, di
je 0x422d01
lea ecx, [esp + 0x60]
mov eax, dword [esp + 8]
mov edx, eax
jmp 0x422cd8
movzx edi, word [ecx]
test di, di
je 0x422d01
movzx esi, word [edx]
test si, si
je 0x422e73
add edx, 2
add ecx, 2
lea ebx, [eax + 2]
cmp si, di
je 0x422cf6
mov eax, ebx
mov edx, ebx
mov ebx, dword [ebp + 0x14]
je 0x422cd0
lea ecx, [esp + 0x60]
jmp 0x422cd0
test eax, eax
mov edi, dword [ebp + 8]
je 0x422e76
mov ecx, ebx
push 0
push 0
push 0x20
lea eax, [esp + 0x62c]
push eax
push dword [esp + 0x6a4]
push dword [esp + 0x6a4]
call fcn.0043e9e0
test eax, eax
js 0x422e76
mov eax, dword [esp + 0x690]
mov ecx, dword [esp + 0x694]
add eax, 0x10
mov dword [esp + 4], eax
adc ecx, 0
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x630]
mov edx, dword [esp + 0x634]
mov dword [esp + 0x504], edx
mov dword [esp + 0x500], eax
jmp 0x422da8
cmp cx, dx
je 0x422e49
push edi
call fcn.0043dd60
add esp, 4
mov eax, dword [esp + 0x500]
mov edx, dword [esp + 0x504]
mov ecx, edx
xor ecx, dword [esp + 0x24]
mov esi, eax
xor esi, dword [esp + 4]
or esi, ecx
mov edi, dword [ebp + 8]
je 0x422e76
mov ecx, ebx
push 0
push 0
push 0x68
lea esi, [esp + 0x50c]
push esi
push edx
push eax
call fcn.0043e9e0
test eax, eax
js 0x422e76
movzx eax, word [esp + 0x55a]
push eax
call fcn.0043dd20
add esp, 4
mov edi, eax
movzx eax, word [esp + 0x55a]
mov ecx, ebx
push 0
push 0
push eax
push edi
push dword [esp + 0x574]
push dword [esp + 0x574]
call fcn.0043e9e0
test eax, eax
js 0x422d7a
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp + 0x10]
movzx ecx, word [ecx + eax]
lea edx, [ecx - 0x41]
cmp dx, 0x1a
jae 0x422e23
or ecx, 0x20
movzx edx, word [edi + eax]
lea esi, [edx - 0x41]
cmp si, 0x1a
jae 0x422e33
or edx, 0x20
test cx, cx
je 0x422d71
add eax, 2
cmp cx, dx
je 0x422e10
jmp 0x422d71
mov eax, dword [esp + 0x530]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x534]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x540]
mov dword [esp + 0x14], eax
push edi
call fcn.0043dd60
add esp, 4
mov edi, dword [ebp + 8]
mov esi, dword [esp + 8]
push esi
call fcn.0043dd60
add esp, 4
push dword [esp + 0x10]
call fcn.0043dd60
add esp, 4
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x18]
je 0x422950
cmp dword [esp + 0x14], 0
je 0x422950
jmp 0x422ec2
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
push dword [esp + 0x20]
call fcn.0043dd60
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov eax, dword [ebp + 0x18]
mov dword [eax], edx
mov dword [eax + 4], esi
mov eax, dword [ebp + 0x1c]
mov dword [eax], ecx
mov ecx, ebx
call fcn.0043e1b0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret