Function at 0x420c30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov eax, dword [0x47ee04]
mov edx, 0x142a7
push ebx
push esi
push edi
mov dword [ebp - 0x64], eax
sub esp, 0x18
mov eax, dword [0x47ee08]
mov ebx, 0x1188d
mov dword [ebp - 0x68], eax
mov edi, 0x4ab5
mov dword [ebp - 0x60], ecx
mov eax, 0x1500f
mov dword [ebp - 4], edx
mov ecx, 0x12575
mov edx, 0xe978
mov dword [ebp - 0xc], 0x27d7
mov dword [ebp - 8], 0x15407
mov esi, 0x14bca
mov dword [ebp - 0x10], 0x33c9
mov dword [ebp - 0x30], 0x146de
mov dword [ebp - 0x40], 0x1800d
mov dword [ebp - 0x24], 0x82b0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x58], 0xae04
mov dword [ebp - 0x4c], 0x438d
mov dword [ebp - 0x48], 0x14005
mov dword [ebp - 0x1c], 0x49b2
mov dword [ebp - 0x34], 0x2a44
mov dword [ebp - 0x3c], 0x2020
mov dword [ebp - 0x18], 0x2859
mov dword [ebp - 0x44], 0x111de
mov dword [ebp - 0x38], 0x3e76
mov dword [ebp - 0x20], 0x174a
call fcn.00406470
add eax, 0x1ad7
add esp, 0x18
mov dword [ebp - 0x5c], eax
test eax, eax
jle 0x420dc7
imul eax, eax, 0x2859
mov ecx, 0x27d7
mov edx, 0x1800d
sub ecx, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
mov ecx, 0x438d
nop dword [eax]
xor dword [ebp - 0x3c], 0x1218a
xor edx, 0x17165
add edx, eax
add eax, 0x135b5
mov dword [ebp - 8], eax
cmp ecx, 0x12464
jne 0x420db2
mov eax, dword [ebp - 0x28]
xor esi, 0x3ad5
and dword [ebp - 0x1c], 0x3f25
and eax, 0x13ddd
mov dword [ebp - 0x28], eax
mov ecx, 0x16b66
cmp eax, 0x1003a
jbe 0x420daf
xor ebx, edx
cmp dword [ebp - 0x44], 0x39e1
jge 0x420daf
mov edi, dword [ebp - 0x30]
xor ebx, 0x123c8
xor edi, dword [ebp - 0x1c]
mov ecx, 0x15bd5
xor dword [ebp - 0x44], 0x53b6
mov dword [ebp - 0x30], edi
cmp ebx, 0xee1f
jge 0x420daf
add dword [ebp - 4], 0x174a
sub ecx, ebx
sub dword [ebp - 0x34], 0x174a
add ebx, 0xca3e
add eax, 0x1097d
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 8]
sub dword [ebp - 0x5c], 1
jne 0x420d20
mov dword [ebp - 0x40], edx
mov edi, 0x4ab5
mov dword [ebp - 0x4c], ecx
mov ecx, 0x2249
mov dword [ebp - 0x2c], 0xb257
call fcn.00401690
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x5c], 0x132f3
cmp eax, 0x49b3
jge 0x420ea3
mov edi, dword [ebp - 0x24]
mov ecx, 0x49b3
sub ecx, eax
mov dword [ebp - 0x1c], 0x49b3
mov eax, dword [ebp - 4]
mov dword [ebp - 0x54], ecx
nop word [eax + eax]
and dword [ebp - 0x20], 0xae36
xor eax, 0x32d5
sub dword [ebp - 0x34], 0xc42e
sub dword [ebp - 0x10], edx
cmp dword [ebp - 0x5c], 0x10258
jne 0x420e8f
sub dword [ebp - 0x20], esi
mov ecx, 0x10258
add dword [ebp - 0x34], 0x14ed4
sub ecx, ebx
and dword [ebp - 0x10], 0x13077
and esi, dword [ebp - 0x40]
xor dword [ebp - 0x30], 0x9d22
mov dword [ebp - 0x5c], ecx
cmp edi, 0x16ba9
jne 0x420e8f
mov edi, eax
or edx, 0x948e
and edi, 0x16ba9
cmp dword [ebp - 0x20], 0x230c
jne 0x420e8f
xor dword [ebp - 0x10], 0x133cb
xor ebx, 0xbc3d
sub dword [ebp - 0x3c], 0xae04
add edi, dword [ebp - 8]
xor eax, 0xae04
sub dword [ebp - 0x54], 1
jne 0x420e10
mov dword [ebp - 0x24], edi
mov edi, 0x4ab5
jmp 0x420ea6
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x40]
nop dword [eax]
add dword [ebp - 0x18], eax
sub esi, 0x542d
and dword [ebp - 0x30], ecx
or eax, 0x1122f
cmp dword [ebp - 0x30], 0xf364
mov dword [ebp - 4], eax
je 0x420f79
sub ecx, dword [ebp - 0x38]
sub edi, 0x10cc0
sub edx, dword [ebp - 0x2c]
add ebx, 0xd9c7
add esi, dword [ebp - 0x20]
cmp dword [ebp - 0x3c], 0xcc80
mov dword [ebp - 0x40], ecx
jle 0x420f79
or dword [ebp - 0x24], 0x6a2b
xor ebx, 0x75d3
sub esi, 0xb877
cmp edx, 0x11b34
jle 0x420f79
mov ecx, dword [ebp - 0x28]
or edx, 0x10b74
or esi, dword [ebp - 0x44]
and ecx, 0xf55f
or ecx, dword [ebp - 0x24]
xor dword [ebp - 0xc], 0x695b
and dword [ebp - 8], 0xa4b7
mov dword [ebp - 0x28], ecx
cmp eax, 0x13201
jge 0x420f76
mov eax, dword [ebp - 0x38]
xor esi, 0x2fde
add eax, dword [ebp - 0x10]
add dword [ebp - 0x20], 0x1258
and dword [ebp - 0x2c], 0xba5f
sub dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], eax
cmp edi, 0x18137
je 0x420f76
xor ecx, 0x17623
add dword [ebp - 0x38], 0xca05
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x58]
and esi, 0xd26a
add eax, dword [ebp - 0x2c]
sub ecx, 0x7902
inc dword [ebp - 0x1c]
add dword [ebp - 0x30], 0x8b02
cmp dword [ebp - 0x1c], 0x49b4
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 4]
jl 0x420eb0
mov eax, dword [ebp - 0x58]
sub esp, 0xc
mov edx, dword [ebp - 0x2c]
add eax, 0xffffc68e
push eax
mov eax, dword [ebp - 0x30]
lea edx, [edx + 0xa1c3]
add eax, 0xffff9fb0
push eax
call fcn.004043b0
add esp, 0x10
mov dword [ebp - 0x2c], eax
call fcn.00406ff0
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x14], eax
call fcn.004167d0
push 0xee47
mov ecx, 0x18108
mov dword [ebp - 0x58], eax
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x30]
add eax, 0x150b
push eax
lea eax, [edi + 0x1310b]
push eax
lea edx, [edx + 0x84ca]
call fcn.004043b0
add esp, 0xc
mov dword [ebp - 0x30], eax
call fcn.004023e0
mov dword [ebp - 0x38], eax
call fcn.00405180
push ecx
call fcn.004046e0
add esp, 8
push 0x147d5
push ecx
call fcn.00403f10
mov eax, dword [ebp - 0x34]
sub esp, 8
xor eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
or dword [ebp - 0x10], 0xae31
xor dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
and eax, 0x6fb6
add dword [ebp - 0x38], eax
mov dword [ebp - 8], eax
call fcn.004059f0
push ecx
mov dword [ebp - 0x44], eax
call fcn.00406050
mov edx, 0x98dd
mov ecx, 0x48b8
call fcn.00404640
add esp, 0xc
call fcn.00401f10
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
mov ecx, dword [ebp - 0x68]
add esp, 0x14
mov dword [ebp - 0x50], 0xfffeb60b
call fcn.004167d0
sub dword [ebp - 0x2c], 0x149b3
mov ecx, 0x15314
mov dword [ebp - 0x54], eax
add ecx, ebx
mov eax, dword [ebp - 0x28]
xor eax, 0x2cea
mov dword [ebp - 0x40], ecx
add eax, 0x7ade
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
or ebx, 0x130d8
and dword [ebp - 0x34], ecx
or eax, 0x76e9
and eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 8]
xor dword [ebp - 0x18], 0x123f1
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], 0x5505
mov dword [ebp - 0x14], ecx
nop
or dword [ebp - 0x10], 0x139e7
or eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 4], eax
cmp edi, 0x3e9c
jle 0x42114d
add dword [ebp - 0x2c], 0xbbdb
and eax, 0x143c8
dec dword [ebp - 0x24]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x40]
sub edx, ebx
and dword [ebp - 0x20], eax
add esi, ecx
inc dword [ebp - 0x44]
sub eax, 0xe959
or dword [ebp - 0x2c], 0x12865
sub dword [ebp - 0x3c], edx
cmp dword [ebp - 0x30], 0x17937
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 4]
jge 0x4211f6
sub ecx, dword [ebp - 0x3c]
xor dword [ebp - 0x24], 0x2480
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x14]
cmp esi, 0x76a9
jge 0x4211f6
mov ebx, dword [ebp - 0x20]
add edx, 0x15923
add dword [ebp - 0x40], ebx
or dword [ebp - 8], esi
and dword [ebp - 0x40], esi
or esi, 0xf029
cmp dword [ebp - 0x50], 0x10bb0
jge 0x4211f6
xor ecx, dword [ebp - 0x34]
xor dword [ebp - 0x3c], 0x451a
xor dword [ebp - 0x18], 0xd8af
cmp dword [ebp - 0x3c], 0xac88
mov dword [ebp - 0x14], ecx
jge 0x4211f6
or dword [ebp - 8], 0x17d5e
xor edi, 0x1d34
add dword [ebp - 0x50], 0x16ef1
or dword [ebp - 0x40], 0xf7fb
mov dword [ebp - 0x30], 0
cmp dword [ebp - 0x44], 0x17f78
mov ebx, dword [ebp - 0x4c]
jl 0x421120
sub esp, 0x10
mov dword [ebp - 0xc], edx
lea eax, [esi - 0xb297]
push eax
lea eax, [ebx - 0xa448]
mov ebx, dword [ebp - 0x1c]
push eax
push ecx
lea edx, [ebx + 0x3eb6]
call fcn.00407eb0
mov edx, dword [ebp - 0x30]
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 0x1784d
push eax
lea edx, [edx + 0xc169]
call fcn.00403a00
add esp, 0xc
mov dword [ebp - 0x5c], eax
lea edx, [edi + 0x11faa]
call fcn.00402b70
mov edx, dword [ebp - 0x2c]
lea ecx, [ebx + 0x3614]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x44]
add ecx, 0xffffa48f
lea edx, [edx + 0x14f69]
call fcn.00402840
add esp, 0xc
mov dword [ebp - 0x20], eax
call fcn.00407550
push ecx
push 0xd290
sub esp, 8
call fcn.00407680
add esp, 0x14
mov ecx, 0x16f61
call fcn.00401710
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x30], 0x128c8
nop dword [eax]
add edx, dword [ebp - 0x1c]
add edi, eax
cmp dword [ebp - 0x40], 0xacd2
je 0x42134f
sub dword [ebp - 0x3c], 0x85dd
xor ebx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x24]
mov dword [ebp - 4], ebx
cmp eax, 0x9997
jne 0x42134f
mov eax, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x44]
or eax, 0x9997
add dword [ebp - 0x10], ebx
and dword [ebp - 0x1c], 0x8133
cmp dword [ebp - 0x48], 0x672b
mov ebx, dword [ebp - 4]
jne 0x42134f
mov edx, dword [ebp - 0x38]
and dword [ebp - 0x2c], edx
xor edx, dword [ebp - 0x5c]
and dword [ebp - 0x1c], 0x4858
mov dword [ebp - 0x38], edx
xor edx, edx
cmp dword [ebp - 0x38], 0xe723
je 0x42134f
sub dword [ebp - 0x2c], 0x13a51
mov edx, 0xc2c8
cmp dword [ebp - 0x50], 0x5828
je 0x42134f
mov edx, dword [ebp - 0x30]
sub eax, 0x11151
sub edx, dword [ebp - 0x24]
and edi, 0x107f
sub dword [ebp - 0x18], 0x16f1e
or esi, ebx
mov dword [ebp - 0x30], edx
mov edx, 0xc2c8
inc dword [ebp - 0x44]
and edi, 0x10d1d
xor ecx, dword [ebp - 0x1c]
and dword [ebp - 0x38], 0x17584
sub dword [ebp - 0x48], 0xe752
cmp dword [ebp - 0x44], 0x17f79
jl 0x4212b0
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x34], eax
call fcn.004167d0
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
cmp eax, 0x1f143
jge 0x42141f
mov edx, dword [ebp - 0x28]
mov ecx, 0x1f143
sub ecx, eax
imul eax, ecx, 0xfffecc7b
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x14]
add dword [ebp - 4], eax
cmp dword [ebp - 0x38], 0x3081
mov eax, dword [ebp - 0x34]
jbe 0x4213f0
xor esi, 0x17434
cmp dword [ebp - 0x30], 0x126d3
je 0x4213db
xor eax, 0x7707
or dword [ebp - 0x18], 0xfcfa
xor eax, 0x9694
or edx, ecx
inc esi
sub dword [ebp - 0x50], 1
jne 0x4213c0
jmp 0x421419
xor esi, 0x17434
cmp dword [ebp - 0x30], 0x126d3
je 0x42140b
xor eax, 0x7707
or dword [ebp - 0x18], 0xfcfa
xor eax, 0x9694
or edx, ecx
inc esi
sub dword [ebp - 0x50], 1
jne 0x4213f0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x54], eax
je 0x421430
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x5c]
add eax, 0x8b67
push eax
mov eax, dword [ebp - 0x38]
add eax, 0x8caf
push eax
mov eax, dword [ebp - 0x30]
lea edx, [edx + 0x8cf7]
add eax, 0xffff4243
push eax
push ecx
call fcn.004054c0
push ecx
mov dword [ebp - 0x44], eax
call fcn.00401ea0
mov edx, dword [ebp - 0x20]
add esp, 0x14
and dword [ebp - 0x44], esi
and edx, 0x6a4e
sub dword [ebp - 0x30], 0x12077
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x2c]
and dword [ebp - 0xc], eax
cmp dword [ebp - 0x34], 0x15ccd
mov dword [ebp - 0x20], edx
je 0x4214ec
or dword [ebp - 0x44], 0x2a6
add edx, eax
mov eax, dword [ebp - 0x50]
add edi, 0x6db0
or dword [ebp - 0x18], edi
xor eax, 0xc2c3
mov dword [ebp - 0x20], edx
cmp esi, 0x11c2f
jne 0x4214ec
mov ecx, dword [ebp - 8]
add edi, 0xfffec991
mov esi, dword [ebp - 0x34]
and ecx, 0x1399a
and esi, dword [ebp - 0x1c]
xor ecx, 0xdabc
or esi, dword [ebp - 0x48]
xor edi, eax
or dword [ebp - 0x14], 0x9cd
add dword [ebp - 4], 0xffff6071
sub ecx, dword [ebp - 0x28]
mov dword [ebp - 8], ecx
jmp 0x421596
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
sub ecx, 0x9f8e
or dword [ebp - 0x14], 0x9cd
sub dword [ebp - 8], eax
cmp esi, 0x1353b
mov esi, dword [ebp - 0x34]
mov dword [ebp - 4], ecx
jle 0x421596
xor esi, dword [ebp - 0x5c]
add ebx, 0x1092f
sub dword [ebp - 0x48], 0xf678
cmp dword [ebp - 0xc], 0x3a2a
mov dword [ebp - 0x4c], ebx
je 0x421596
add dword [ebp - 0x20], 0x8352
or dword [ebp - 0x10], esi
cmp dword [ebp - 0x20], 0x1406a
jle 0x421596
mov edx, dword [ebp - 0x44]
xor ecx, 0x1539e
sub edx, dword [ebp - 0x48]
add ecx, esi
xor dword [ebp - 8], edx
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 4], ecx
cmp eax, 0xdf
je 0x421596
mov eax, dword [ebp - 0x30]
or eax, dword [ebp - 0x10]
add dword [ebp - 8], 0x1676c
mov dword [ebp - 0x30], eax
mov eax, 0xfffedc78
sub eax, dword [ebp - 0x48]
add dword [ebp - 0x18], eax
cmp ebx, 0x3173
jle 0x421596
sub edx, dword [ebp - 0x30]
or ecx, 0x4d80
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], ecx
xor edx, edx
mov dword [ebp - 0x5c], edx
cmp dword [ebp - 0x58], edx
jbe 0x42161f
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x64]
nop dword [eax]
mov dword [ebp - 0x64], 0
test eax, eax
je 0x421614
nop dword [eax + eax]
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
mov edx, dword [ebp - 0x5c]
add esp, 8
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x64]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x68]
cmp al, byte [ecx + edx]
mov edx, dword [ebp - 0x5c]
je 0x421605
mov eax, dword [ebp - 0x54]
inc ecx
mov dword [ebp - 0x64], ecx
cmp ecx, eax
jb 0x4215c0
jmp 0x421611
mov al, byte [ecx + ebx]
mov ecx, dword [ebp - 0x60]
mov byte [ecx + edx], al
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
inc edx
mov dword [ebp - 0x5c], edx
cmp edx, ecx
jb 0x4215b0
mov ebx, dword [ebp - 0x4c]
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
add esp, 8
mov ecx, 0x2249
call fcn.00401690
mov eax, dword [ebp - 0x44]
mov edx, 0xcaa2
push 0x8c88
push 0x5dc3
add eax, 0x14a23
push eax
push 0xc66a
push ecx
call fcn.00402dd0
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
mov eax, dword [ebp - 0xc]
add esp, 0x1c
mov ecx, dword [ebp - 0x20]
mov edx, 0xae70
nop dword [eax]
xor ebx, 0x165d
or edx, 0x7b01
cmp ecx, 0x1534c
je 0x4216e3
mov ecx, dword [ebp - 0x30]
sub ebx, 0x13ff2
mov eax, dword [ebp - 0x14]
sub ecx, eax
or dword [ebp - 0x10], ecx
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x20]
cmp edi, 0x13cc2
je 0x4216e0
add eax, esi
sub esi, 0x1770d
and eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp ebx, 0x9100
jle 0x4216f6
and dword [ebp - 8], 0x2868
cmp eax, 0xfffe0142
jl 0x4216a0
mov ebx, dword [ebp - 0x20]
lea ecx, [ebx + 0x189cc]
call fcn.00407e30
mov edi, dword [ebp - 0x18]
add eax, 0xfffe837e
test eax, eax
jle 0x42172e
sub edi, eax
nop dword [eax]
xor ebx, 0x31df
sub eax, 1
jne 0x421720
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 8]
mov ecx, 0x18108
push 0xee47
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
and dword [ebp - 0x20], 0x5347
lea eax, [ebx + 0x63ba]
sub eax, dword [ebp - 0x10]
add esp, 8
or eax, 0xf310
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xc]
cmp esi, 0x11493
je 0x42178d
sub dword [ebp - 4], ebx
cmp edi, 0x136f5
je 0x42178d
cmp esi, 0xcaf7
jge 0x42178d
xor eax, 0x61be
sub esp, 8
add eax, 0x2560b
push eax
mov eax, dword [ebp - 4]
push 0x15463
sub esp, 0xc
add eax, 0x21767
push eax
call fcn.00407fc0
mov edx, dword [ebp - 0x20]
mov ecx, 0x15532
mov eax, dword [ebp - 0x68]
add eax, 0xffff947d
push eax
lea edx, [edx + 0xfd6e]
call fcn.00407720
add esp, 0x24
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret