Function at 0x420c00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x14c8
call fcn.00408180
push eax
sub esp, 0x10
mov dword [ebp - 0x140], esp
sub esp, 0x200
mov dword [ebp - 0x128], esp
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x144], eax
push eax
mov dword [ebp - 0x12c], esp
sub esp, 0x800
mov dword [ebp - 0x14], esp
push eax
mov dword [ebp - 0x14c], esp
push eax
mov dword [ebp - 0x2c], esp
sub esp, 0x400
mov dword [ebp - 0x30], esp
push eax
mov dword [ebp - 0x3c], esp
sub esp, 0x14
mov esi, esp
sub esp, 0x14
mov dword [ebp - 0x20], esp
sub esp, 0x28
mov dword [ebp - 0x138], esp
mov dword [ebp - 0x14d4], 0x41f447e0
mov dword [ebp - 0x14d0], 0x4d0b430f
mov dword [ebp - 0x14cc], 0x49f34f07
mov dword [ebp - 0x14c8], 0xb5f84bf4
mov dword [ebp - 0x14c4], 0xb112b70f
mov dword [ebp - 0x14c0], 0xbd0fb30f
mov dword [ebp - 0x14bc], 0xb90cbff3
mov dword [ebp - 0x14b8], 0xbbb8
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ebp + ecx - 0x14d4]
mov ebx, eax
and ebx, 0x22
mov edx, ecx
xor edx, 0x5110071
add edx, ebx
mov ebx, edx
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
mov ebx, edx
and ebx, 0x4a
add ebx, ebx
xor edx, 0x35
sub ebx, edx
mov byte [ebp + ecx - 0x14d4], bl
inc ecx
add eax, 2
cmp ecx, 0x20
jne case.default.0x41fa25
lea eax, [ebp - 0x134]
lea edi, [ebp - 0x14d4]
push 0
push 0
push 0x20019
push eax
push edi
call fcn.0043cbd0
add esp, 0x14
shr eax, 0x1f
mov dword [ebp - 0x148], esi
jmp dword [eax*4 + 0x443568]
lea eax, [ebp - 0x164]
lea ecx, [ebp - 0x130]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [ebp - 0x134]
call fcn.0043cfc0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443570]
xor ebx, ebx
jmp 0x4210ad
mov dword [ebp - 0x18], edi
add dword [ebp - 0x13c], 2
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x34], 0
cmp ecx, dword [ebp - 0x130]
setb al
xor ebx, ebx
jmp dword [eax*4 + 0x443578]
mov eax, dword [ebp - 0x18]
jmp dword [0x443584]
mov word [eax], 0
nop
nop
nop
nop
mov word [eax], 0
jmp dword [0x44358c]
mov ebx, dword [ebp - 0x34]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x443590]
movzx ebx, word [ebp - 0x14d4]
xor esi, esi
test bx, bx
je 0x420e7b
lea eax, [ebp - 0x14d2]
mov ecx, ebx
jmp 0x420e56
inc ebx
xor eax, eax
cmp ebx, dword [ebp - 0x130]
setb al
jmp dword [eax*4 + 0x443578]
mov edi, dword [ebp - 0x164]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41fb07
mov eax, 0xffffffff
push eax
call fcn.004081b0
add esp, 4
mov dword [ebp - 0x160], edi
lea ecx, [ebp - 0x160]
push ecx
push eax
push ebx
push dword [ebp - 0x134]
mov edi, eax
call fcn.0043cce0
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [ebp - 0x158], edi
jmp dword [eax*4 + 0x4435a8]
jmp dword [0x443638]
lea eax, [ebp - 0x150]
push dword [ebp - 0x134]
push 0
push 0x20019
push eax
push edi
call fcn.0043cbd0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4435b0]
jmp dword [0x443638]
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x124], 0xb1658f43
mov dword [ebp - 0x120], 0xb520b355
mov dword [ebp - 0x11c], 0xb923b725
mov dword [ebp - 0x118], 0xbd5cbb29
mov dword [ebp - 0x114], 0xa142bf28
mov dword [ebp - 0x110], 0xa549a359
mov dword [ebp - 0x10c], 0xa942a74a
mov dword [ebp - 0x108], 0xad33ab39
mov dword [ebp - 0x104], 0x518eaf39
mov dword [ebp - 0x100], 0x55b5539f
mov dword [ebp - 0xfc], 0x59c357c1
mov dword [ebp - 0xf8], 0x5db35bbb
mov dword [ebp - 0xf4], 0x41b05fb7
mov dword [ebp - 0xf0], 0x456243a9
mov dword [ebp - 0xec], 0x49d147b1
mov dword [ebp - 0xe8], 0x4ddf4baa
mov dword [ebp - 0xe4], 0x71db4fd7
mov dword [ebp - 0xe0], 0x759573e4
mov dword [ebp - 0xdc], 0x798a779b
mov dword [ebp - 0xd8], 0x7de87b88
mov dword [ebp - 0xd4], 0x61987fed
mov dword [ebp - 0xd0], 0x658e638b
mov dword [ebp - 0xcc], 0x69f36783
mov dword [ebp - 0xc8], 0x6db16b94
mov dword [ebp - 0xc4], 0x11b76fb9
mov dword [ebp - 0xc0], 0x15d713c7
mov dword [ebp - 0xbc], 0x19d017d2
mov dword [ebp - 0xb8], 0x1dce1bc8
mov dword [ebp - 0xb4], 0x1cb1fcf
mov dword [ebp - 0xb0], 0x5d103d3
mov dword [ebp - 0xac], 0x9e207d7
mov dword [ebp - 0xa8], 0xdc80bdd
mov dword [ebp - 0xa4], 0x31d60fd4
mov dword [ebp - 0xa0], 0x35e233f3
mov dword [ebp - 0x9c], 0x39e537e4
mov dword [ebp - 0x98], 0x3dee3be8
mov dword [ebp - 0x94], 0x21ec3ffe
mov dword [ebp - 0x90], 0x25f423e3
mov dword [ebp - 0x8c], 0x29ff27f2
mov dword [ebp - 0x88], 0x2dd62bfe
mov word [ebp - 0x84], 0x2f2c
mov dword [ebp - 0x82], 0
xor eax, eax
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x5d
xor cl, byte [ebp + eax - 0x124]
add cl, 0x2f
mov byte [ebp + eax - 0x124], cl
inc eax
cmp eax, 0xa6
jne 0x41fd30
lea edi, [ebp - 0x2a8]
lea eax, [ebp - 0x124]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x84]
lea edi, [ebp - 0x208]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x124], 0x39ad3b8f
mov dword [ebp - 0x120], 0x25b82795
mov dword [ebp - 0x11c], 0x21bf23b5
mov dword [ebp - 0x118], 0x2d842fb1
mov dword [ebp - 0x114], 0x298e2bb0
mov dword [ebp - 0x110], 0x15811791
mov dword [ebp - 0x10c], 0x11be1386
mov dword [ebp - 0x108], 0x1d871f81
mov dword [ebp - 0x104], 0x19fa1b81
mov dword [ebp - 0x100], 0x5ba07aa
mov dword [ebp - 0xfc], 0x1cf03a0
mov dword [ebp - 0xf8], 0xd900f9b
mov dword [ebp - 0xf4], 0x9a10b92
mov dword [ebp - 0xf0], 0xf56af79a
mov dword [ebp - 0xec], 0xf159f34e
mov dword [ebp - 0xe8], 0xfd63ff6e
mov dword [ebp - 0xe4], 0xf96bfb6b
mov dword [ebp - 0xe0], 0xe542e76a
mov dword [ebp - 0xdc], 0xe175e35d
mov dword [ebp - 0xd8], 0xed42ef72
mov dword [ebp - 0xd4], 0xe973eb7d
mov dword [ebp - 0xd0], 0xd536d775
mov dword [ebp - 0xcc], 0xd179d367
mov dword [ebp - 0xc8], 0xdd43df4d
mov dword [ebp - 0xc4], 0xd973db73
mov dword [ebp - 0xc0], 0xc554c74f
mov dword [ebp - 0xbc], 0xc122c36d
mov dword [ebp - 0xb8], 0xcd55cf7d
mov dword [ebp - 0xb4], 0xc957cb62
mov dword [ebp - 0xb0], 0xb52bb74f
mov dword [ebp - 0xac], 0xb119b328
mov dword [ebp - 0xa8], 0xbd1abf23
mov dword [ebp - 0xa4], 0xb924bb0c
mov dword [ebp - 0xa0], 0xa50ca729
mov dword [ebp - 0x9c], 0xa136a333
mov dword [ebp - 0x98], 0xad33af0b
mov dword [ebp - 0x94], 0xa91bab08
mov dword [ebp - 0x90], 0x950a9733
mov dword [ebp - 0x8c], 0x91039300
mov dword [ebp - 0x88], 0x9d0b9f01
mov dword [ebp - 0x84], 0x995d9b38
mov dword [ebp - 0x80], 0x855f8745
mov dword [ebp - 0x7c], 0x814f835f
mov dword [ebp - 0x78], 0x8d448f4a
mov dword [ebp - 0x74], 0x89568b5c
mov dword [ebp - 0x70], 0x75ab7757
mov dword [ebp - 0x6c], 0x71ad73ab
mov dword [ebp - 0x68], 0x7dd27faf
mov dword [ebp - 0x64], 0x79b47ba1
mov dword [ebp - 0x60], 0x65be67a0
mov dword [ebp - 0x5c], 0x61b263ab
mov dword [ebp - 0x58], 0x6db16fb0
mov dword [ebp - 0x54], 0x69b66bbc
mov dword [ebp - 0x50], 0x558857a6
mov dword [ebp - 0x4c], 0x5188539b
mov dword [ebp - 0x48], 0x5d875f8a
mov dword [ebp - 0x44], 0x59fe5b86
mov dword [ebp - 0x40], 0x4758
mov eax, 0x1a9a9f4b
mov edi, 0x6560b4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebp + eax - 0x1a9aa06f]
mov ebx, edi
and ebx, 0x417ff0
mov edx, eax
and edx, 0x121a800f
or edx, ebx
xor edx, ecx
mov ecx, edx
xor ecx, 0xa8c17ff0
xor edx, 0x87
and edx, ecx
or ecx, 0x88
add ecx, edx
inc cl
mov byte [ebp + eax - 0x1a9aa06f], cl
inc eax
dec edi
cmp eax, 0x1a9aa033
jne 0x41ffa0
lea edi, [ebp - 0x38e]
lea eax, [ebp - 0x124]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x40]
lea edi, [ebp - 0x2aa]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x124], 0xc36bc10d
mov dword [ebp - 0x120], 0xc754c567
mov dword [ebp - 0x11c], 0xcb59c967
mov dword [ebp - 0x118], 0xcf68cd63
mov dword [ebp - 0x114], 0xb30eb124
mov dword [ebp - 0x110], 0xb710b57b
mov dword [ebp - 0x10c], 0xbb13b91e
mov dword [ebp - 0x108], 0xbf1bbd1f
mov dword [ebp - 0x104], 0xa373a11c
mov dword [ebp - 0x100], 0xa748a577
mov dword [ebp - 0xfc], 0xab16a978
mov dword [ebp - 0xf8], 0xaf3bad63
mov dword [ebp - 0xf4], 0x933e9104
mov dword [ebp - 0xf0], 0x9739953b
mov dword [ebp - 0xec], 0x9b269933
mov dword [ebp - 0xe8], 0x9f0c9d2c
mov dword [ebp - 0xe4], 0x8324812f
mov dword [ebp - 0xe0], 0x872a852d
mov dword [ebp - 0xdc], 0x8b19892d
mov dword [ebp - 0xd8], 0x8f418d30
mov dword [ebp - 0xd4], 0x73e671e5
mov dword [ebp - 0xd0], 0x77d975d8
mov dword [ebp - 0xcc], 0x7bd179d7
mov dword [ebp - 0xc8], 0x7fa77dc0
mov dword [ebp - 0xc4], 0x63b561b3
mov dword [ebp - 0xc0], 0x67a565b1
mov dword [ebp - 0xbc], 0x6bac69ae
mov dword [ebp - 0xb8], 0x6fba6dbc
mov dword [ebp - 0xb4], 0x53815181
mov dword [ebp - 0xb0], 0x57875585
mov dword [ebp - 0xac], 0x5bfe5989
mov dword [ebp - 0xa8], 0x5f9c5d8f
mov dword [ebp - 0xa4], 0x439a4198
mov dword [ebp - 0xa0], 0x47964585
mov dword [ebp - 0x9c], 0x4b9b4998
mov dword [ebp - 0x98], 0x4f9a4d9c
mov dword [ebp - 0x94], 0x33e031f2
mov dword [ebp - 0x90], 0x37e035f5
mov dword [ebp - 0x8c], 0x3bed39ee
mov dword [ebp - 0x88], 0x3f823dea
mov word [ebp - 0x84], 0x2120
mov dword [ebp - 0x82], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp - 0x10], eax
movzx edi, byte [ebp + ecx - 0x124]
mov ebx, dword [ebp - 0x10]
and ebx, 0x160
mov edx, ecx
xor edx, 0xecd481b0
add edx, ebx
xor edx, edi
mov edi, edx
and edi, 0x8d
mov eax, edx
and eax, 2
mov ebx, eax
xor ebx, 2
imul ebx, edi
or edi, 2
imul edi, eax
xor edx, 0x8f
add edx, ebx
mov eax, dword [ebp - 0x10]
add edx, edi
inc dl
mov byte [ebp + ecx - 0x124], dl
inc ecx
add eax, 2
cmp ecx, 0xa6
jne 0x4201c0
lea edi, [ebp - 0x206]
lea eax, [ebp - 0x124]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x84]
lea edi, [ebp - 0x166]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x124], 0x1fb719d5
mov dword [ebp - 0x120], 0xe3541dbb
mov dword [ebp - 0x11c], 0xe751e153
mov dword [ebp - 0x118], 0xeb40e557
mov dword [ebp - 0x114], 0xef32e95c
mov dword [ebp - 0x110], 0xf358ed3f
mov dword [ebp - 0x10c], 0xf75ff15a
mov dword [ebp - 0x108], 0xfb5ff553
mov dword [ebp - 0x104], 0xff0ff924
mov dword [ebp - 0x100], 0xc330fd08
mov dword [ebp - 0xfc], 0xc71ac130
mov dword [ebp - 0xf8], 0xcb7fc517
mov dword [ebp - 0xf4], 0xcf62c97c
mov dword [ebp - 0xf0], 0xd361cd7f
mov dword [ebp - 0xec], 0xd70ad17f
mov dword [ebp - 0xe8], 0xdb6cd504
mov dword [ebp - 0xe4], 0xdf74d96b
mov dword [ebp - 0xe0], 0xa30edd75
mov dword [ebp - 0xdc], 0xa711a105
mov dword [ebp - 0xd8], 0xab79a578
mov dword [ebp - 0xd4], 0xaf1aa91d
mov dword [ebp - 0xd0], 0xb301ad00
mov dword [ebp - 0xcc], 0xb719b103
mov dword [ebp - 0xc8], 0xbb43b568
mov dword [ebp - 0xc4], 0xbf45b94f
mov dword [ebp - 0xc0], 0x8345bd49
mov dword [ebp - 0xbc], 0x874c814a
mov dword [ebp - 0xb8], 0x8b7e8574
mov dword [ebp - 0xb4], 0x8f798979
mov dword [ebp - 0xb0], 0x93638d7d
mov dword [ebp - 0xac], 0x97329161
mov dword [ebp - 0xa8], 0x9b5c9563
mov dword [ebp - 0xa4], 0x9f669960
mov dword [ebp - 0xa0], 0x63929d5d
mov dword [ebp - 0x9c], 0x67976190
mov dword [ebp - 0x98], 0x6b9e6594
mov dword [ebp - 0x94], 0x6f9869ae
mov dword [ebp - 0x90], 0x73886dad
mov dword [ebp - 0x8c], 0x778d718a
mov dword [ebp - 0x88], 0x7ba6758e
mov word [ebp - 0x84], 0x7978
lea eax, [ebp - 0x84]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov eax, 0x85
mov ecx, 0x7a
nop
nop
movzx edx, byte [ebp + ecx - 0x19e]
mov edi, ecx
or edi, edx
not edx
or edx, eax
add edx, edi
add dl, 0x9f
mov byte [ebp + ecx - 0x19e], dl
dec eax
inc ecx
cmp eax, 0xffffffdd
jne 0x420400
lea edx, [ebp - 0x4d2]
lea eax, [ebp - 0x124]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x84]
mov ecx, 1
lea edi, [ebp - 0x432]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x124], 0xb1658f43
mov dword [ebp - 0x120], 0xb520b355
mov dword [ebp - 0x11c], 0xb923b725
mov dword [ebp - 0x118], 0xbd5cbb29
mov dword [ebp - 0x114], 0xa142bf28
mov dword [ebp - 0x110], 0xa544a351
mov dword [ebp - 0x10c], 0xa94da742
mov dword [ebp - 0x108], 0xad4dab4d
mov dword [ebp - 0x104], 0x517daf50
mov dword [ebp - 0x100], 0x557c5387
mov dword [ebp - 0xfc], 0x59aa5784
mov dword [ebp - 0xf8], 0x5dcd5ba9
mov dword [ebp - 0xf4], 0x41b25fc8
mov dword [ebp - 0xf0], 0x45d343d1
mov dword [ebp - 0xec], 0x49ba47a9
mov dword [ebp - 0xe8], 0x4dd84bb8
mov dword [ebp - 0xe4], 0x71a84fdd
mov dword [ebp - 0xe0], 0x759e739b
mov dword [ebp - 0xdc], 0x79e37793
mov dword [ebp - 0xd8], 0x7d8b7b84
mov dword [ebp - 0xd4], 0x61ea7feb
mov dword [ebp - 0xd0], 0x65f3638c
mov dword [ebp - 0xcc], 0x698b67f5
mov dword [ebp - 0xc8], 0x6db16b94
mov dword [ebp - 0xc4], 0x11b76fb9
mov dword [ebp - 0xc0], 0x15d713c7
mov dword [ebp - 0xbc], 0x19d017d2
mov dword [ebp - 0xb8], 0x1dce1bc8
mov dword [ebp - 0xb4], 0x1cb1fcf
mov dword [ebp - 0xb0], 0x5d103d3
mov dword [ebp - 0xac], 0x9e207d7
mov dword [ebp - 0xa8], 0xdc80bdd
mov dword [ebp - 0xa4], 0x31d60fd4
mov dword [ebp - 0xa0], 0x35e233f3
mov dword [ebp - 0x9c], 0x39e537e4
mov dword [ebp - 0x98], 0x3dee3be8
mov dword [ebp - 0x94], 0x21ec3ffe
mov dword [ebp - 0x90], 0x25f423e3
mov dword [ebp - 0x8c], 0x29ff27f2
mov dword [ebp - 0x88], 0x2dd62bfe
mov word [ebp - 0x84], 0x2f2c
lea eax, [ebp - 0x84]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov eax, 0xce3943dd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebp + eax + 0x31c6baff]
xor ecx, eax
mov edi, ecx
and edi, 1
xor ecx, 1
lea ecx, [ecx + edi*2]
add cl, 0xae
mov byte [ebp + eax + 0x31c6baff], cl
inc eax
cmp eax, 0xce394485
jne 0x420610
lea eax, [ebp - 0x430]
lea ebx, [ebp - 0x124]
mov ecx, 0x28
mov edi, eax
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea ebx, [ebp - 0x84]
lea edi, [ebp - 0x390]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [ebp - 0x140]
lea edi, [ebp - 0x2a8]
mov dword [ecx], edi
mov ebx, dword [ebp - 0x2c]
lea edi, [ebp - 0x38e]
mov dword [ecx + 4], edi
lea edi, [ebp - 0x206]
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x10], eax
mov eax, dword [case.0x41fa25.22]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x4435c8]
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x124], 0x3c3d3a3b
mov dword [ebp - 0x120], 0
xor ecx, ecx
nop
mov eax, ecx
add al, 0xca
xor al, byte [ebp + ecx - 0x124]
add al, 0xe
mov byte [ebp + ecx - 0x124], al
inc ecx
cmp ecx, 8
jne 0x4206e0
mov ecx, dword [0x4490f4]
test ecx, ecx
mov ebx, dword [ebp - 0x154]
je 0x420df0
mov edx, dword [ebp - 0x124]
xor edi, edi
mov eax, dword [0x4490f8]
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0xb62b8d10
je 0x420dda
inc edi
cmp ecx, edi
jne 0x420720
jmp 0x420df0
mov ecx, dword [ebp - 0x15c]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x4435c8]
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x15c], ecx
mov eax, dword [eax + ecx]
mov edi, dword [ebp - 0x144]
mov dword [edi], 0x77260958
mov dword [edi + 4], 0x73227524
mov dword [edi + 8], 0x7f2e7120
mov dword [edi + 0xc], 0x7bc27d2c
mov word [edi + 0x10], 0x7978
mov dword [edi + 0x12], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x3e
xor dl, byte [edi + ecx]
add dl, 0xca
mov byte [edi + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add ecx, 0x38025a56
mov edx, ecx
and edx, 0xaa
xor ecx, 0xc7fda5aa
lea ecx, [ecx + edx*2]
cmp ecx, 0x16
jb 0x4207a0
movzx ecx, word [eax]
mov edx, dword [ebp - 0x128]
test cx, cx
je 0x420801
add eax, 2
mov edx, dword [ebp - 0x128]
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x4207f0
mov word [edx], 0
mov eax, dword [ebp - 0x144]
movzx eax, word [eax]
test ax, ax
je 0x420831
mov ecx, dword [ebp - 0x13c]
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420820
mov word [edx], 0
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [ebp - 0x24], edx
jmp dword [eax*4 + 0x4435d0]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
jmp dword [eax*4 + 0x4435d0]
mov dword [ebp - 0x28], ecx
mov word [edx - 2], cx
push dword [ebp - 0x150]
push 0
push 0x20019
push dword [ebp - 0x12c]
push dword [ebp - 0x128]
call fcn.0043cbd0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4435d8]
mov eax, dword [ebp - 0x14c]
mov dword [eax], 0x800
mov eax, dword [ebp - 0x3c]
mov dword [eax], 0x400
xor edi, edi
mov dword [ebp - 0x38], 0
nop
nop
nop
nop
nop
nop
nop
push dword [ebp - 0x3c]
push dword [ebp - 0x30]
push ebx
push dword [ebp - 0x14c]
push dword [ebp - 0x14]
push edi
mov eax, dword [ebp - 0x12c]
push dword [eax]
call fcn.0043d2b0
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4435e0]
test byte [ebp - 0x38], 1
sete al
mov edx, dword [ebx]
cmp edx, 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x4435e8]
xor eax, eax
cmp edx, 3
sete al
jmp dword [eax*4 + 0x443608]
mov eax, dword [case.0x420dd3.25]
jmp case.0x420dd3.22
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x1c], edi
jmp dword [0x4435f0]
movzx edi, byte [ecx]
mov edx, eax
or edx, edi
lea ebx, [eax - 0x7523a200]
and ebx, edi
not edx
or edx, ebx
mov edi, edx
and edi, 1
or edx, 1
add edx, edi
add dl, 0xaa
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0x7523a2da
jne 0x420940
mov eax, dword [ebp - 0x20]
movzx edi, word [eax]
mov ebx, dword [ebp - 0x14]
test di, di
je 0x4209b7
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x14]
mov edx, ebx
jmp 0x4209a0
add ebx, 2
mov edx, ebx
mov ecx, dword [ebp - 0x20]
movzx edi, word [ecx]
test di, di
je 0x4209b7
movzx eax, word [edx]
test ax, ax
je 0x4209b5
cmp ax, di
jne 0x420990
add edx, 2
add ecx, 2
jmp 0x420998
xor ebx, ebx
mov ecx, dword [case.0x420dd3.18]
nop
nop
nop
jmp ecx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x443620]
mov eax, dword [ebp - 0x3c]
mov edi, dword [eax]
cmp edi, 2
jae 0x4209e2
mov ebx, dword [ebp - 0x18]
jmp 0x420a82
shr edi, 1
lea eax, [edi - 1]
mov ecx, edi
and ecx, 3
mov ebx, dword [ebp - 0x18]
je 0x420a97
mov dword [ebp - 0x34], eax
xor edx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x30]
mov esi, ebx
movzx ebx, word [ecx]
xor eax, eax
test bx, bx
setne al
lea ecx, [ecx + eax*2]
mov word [esi], bx
mov ebx, esi
add ebx, 2
inc edx
cmp dword [ebp - 0x10], edx
jne 0x420a00
sub edi, edx
mov esi, dword [ebp - 0x148]
mov eax, dword [ebp - 0x34]
cmp eax, 3
jb 0x420a82
nop
nop
movzx eax, word [ecx]
xor edx, edx
test ax, ax
setne dl
mov word [ebx], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 4], ax
lea eax, [ecx + edx*2]
movzx edx, word [ecx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
lea ecx, [eax + ecx*2]
mov word [ebx + 6], dx
add ebx, 8
add edi, 0xfffffffc
jne 0x420a30
mov word [ebx], 0xa
add ebx, 2
mov dword [ebp - 0x18], ebx
mov al, 1
mov dword [ebp - 0x34], eax
jmp case.0x420dd3.20
mov ecx, dword [ebp - 0x30]
cmp eax, 3
jae 0x420a30
jmp 0x420a82
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x443600]
xor eax, eax
cmp dword [ebp - 0x10], 3
sete al
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
jmp dword [eax*4 + 0x443608]
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0x20]
mov dword [ecx], 0x41a547b4
mov dword [ecx + 4], 0x4ddf43dd
mov dword [ecx + 8], 0x49df4fd5
mov dword [ecx + 0xc], 0x75a64bda
mov dword [ecx + 0x10], 0x7774
mov eax, 0x7523a2ee
jmp 0x420940
mov eax, dword [ebp - 0x3c]
mov edi, dword [eax]
cmp edi, 2
jae 0x420b22
mov ebx, dword [ebp - 0x18]
jmp 0x420bc2
shr edi, 1
lea eax, [edi - 1]
mov ecx, edi
and ecx, 3
mov ebx, dword [ebp - 0x18]
je 0x420be8
mov dword [ebp - 0x38], eax
xor edx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x30]
mov esi, ebx
movzx ebx, word [ecx]
xor eax, eax
test bx, bx
setne al
lea ecx, [ecx + eax*2]
mov word [esi], bx
mov ebx, esi
add ebx, 2
inc edx
cmp dword [ebp - 0x10], edx
jne 0x420b40
sub edi, edx
mov esi, dword [ebp - 0x148]
mov eax, dword [ebp - 0x38]
cmp eax, 3
jb 0x420bc2
nop
nop
movzx eax, word [ecx]
xor edx, edx
test ax, ax
setne dl
mov word [ebx], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 4], ax
lea eax, [ecx + edx*2]
movzx edx, word [ecx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
lea ecx, [eax + ecx*2]
mov word [ebx + 6], dx
add ebx, 8
add edi, 0xfffffffc
jne 0x420b70
mov dword [ebx], 0x20003a
add ebx, 4
mov dword [ebp - 0x18], ebx
mov al, 1
mov dword [ebp - 0x38], eax
mov eax, dword [case.0x420dd3.25]
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
nop
nop
jmp eax
inc edi
jmp 0x4208c0
mov ecx, dword [ebp - 0x30]
cmp eax, 3
jae 0x420b70
jmp 0x420bc2
mov dword [esi], 0x71ab0f4f
mov dword [esi + 4], 0x75e373d5
mov dword [esi + 8], 0x79d877e3
mov dword [esi + 0xc], 0x7d7a7bec
mov dword [esi + 0x10], 0
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi + edi]
mov ebx, ecx
and ebx, 0x3a
mov edx, edi
xor edx, 0x71c70cbd
add edx, ebx
mov ebx, eax
and ebx, edx
add ebx, ebx
sub edx, ebx
add dl, al
add dl, 0x4f
mov byte [esi + edi], dl
inc edi
add ecx, 2
cmp edi, 0x14
jne 0x420c30
mov dword [esi], 0x71ab0f4f
mov dword [esi + 4], 0x75e373d5
mov dword [esi + 8], 0x79d877e3
mov dword [esi + 0xc], 0x7d7a7bec
mov dword [esi + 0x10], 0
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi + edi]
mov ebx, ecx
and ebx, 0x3a
mov edx, edi
xor edx, 0x71c70cbd
add edx, ebx
mov ebx, eax
and ebx, edx
add ebx, ebx
sub edx, ebx
add dl, al
add dl, 0x4f
mov byte [esi + edi], dl
inc edi
add ecx, 2
cmp edi, 0x14
jne 0x420c90
movzx eax, word [esi]
mov edi, dword [ebp - 0x14]
test ax, ax
je 0x420d00
mov edx, esi
mov edi, dword [ebp - 0x14]
mov ecx, edi
jmp 0x420cdf
add edi, 2
mov ecx, edi
mov edx, esi
movzx eax, word [edx]
test ax, ax
je 0x420d00
movzx ebx, word [ecx]
test bx, bx
je 0x420d10
cmp bx, ax
jne 0x420cd0
add ecx, 2
add edx, 2
jmp 0x420cd7
jmp dword [0x4435fc]
xor edi, edi
jmp dword [0x4435fc]
mov eax, dword [ebp - 0x12c]
mov edi, dword [eax]
mov dword [ebp - 0x124], 0x3c3d3a3b
mov dword [ebp - 0x120], 0
xor ecx, ecx
mov edx, dword [ebp - 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0xca
xor al, byte [ebp + ecx - 0x124]
add al, 0xe
mov byte [ebp + ecx - 0x124], al
inc ecx
cmp ecx, 8
jne 0x420d50
mov ecx, dword [0x4490f4]
test ecx, ecx
je 0x420853
mov dword [ebp - 0x10], edi
mov edx, dword [ebp - 0x124]
xor edi, edi
mov eax, dword [0x4490f8]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0xb62b8d10
je 0x420da3
inc edi
cmp ecx, edi
jne 0x420d90
jmp case.0x41fa25.27
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je case.0x41fa25.27
push dword [ebp - 0x10]
push 4
push eax
push dword [0x4490fc]
call fcn.00438910
add esp, 0x10
mov ecx, dword [ebp - 0x28]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
mov edx, dword [ebp - 0x24]
jmp dword [eax*4 + 0x4435d0]
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
jne 0x420e17
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x443638]
push dword [ebp - 0x158]
call fcn.004081c0
add esp, 4
inc ebx
xor eax, eax
cmp ebx, dword [ebp - 0x130]
setb al
jmp dword [eax*4 + 0x443578]
push dword [ebp - 0x10]
push 4
push eax
push dword [0x4490fc]
call fcn.00438910
add esp, 0x10
jmp dword [0x443638]
mov ecx, esi
xor ecx, 1
and esi, 1
lea esi, [ecx + esi*2]
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x420e7b
cmp cx, 0x7f
jbe 0x420e40
movzx edx, cx
cmp edx, 0x7ff
ja 0x420e70
add esi, 2
jmp 0x420e4b
cmp cx, 0xffff
je 0x420e4b
add esi, 3
jmp 0x420e4b
mov eax, esi
and eax, 1
mov dword [ebp - 0x1c], esi
xor esi, 1
mov dword [ebp - 0x14], eax
lea eax, [esi + eax*2]
push eax
call fcn.004081b0
add esp, 4
mov edi, eax
mov dword [ebp - 0x10], eax
test bx, bx
je 0x420ff0
mov eax, dword [ebp - 0x14]
lea ecx, [esi + eax*2]
dec ecx
mov edi, dword [ebp - 0x10]
test ecx, ecx
je 0x420ff0
lea edx, [ebp - 0x14d4]
mov edi, dword [ebp - 0x10]
nop
nop
movzx ebx, bx
lea esi, [edx + 2]
cmp bx, 0x7f
ja 0x420ee0
lea eax, [edi + 1]
mov byte [edi], bl
jmp 0x420f90
cmp ebx, 0x7ff
ja 0x420f10
cmp ecx, 2
jb 0x420f10
mov eax, ebx
shr eax, 6
add al, 0xc0
mov byte [edi], al
and bl, 0x3f
or bl, 0x80
lea eax, [edi + 2]
mov byte [edi + 1], bl
jmp 0x420f90
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x420fb6
cmp ecx, 4
jb 0x420fb6
movzx eax, word [edx + 2]
mov dword [ebp - 0x20], eax
shl ebx, 0xa
add eax, ebx
add eax, 0xfc9f2400
mov esi, eax
and esi, 0x10000
mov ebx, eax
xor ebx, 0x10000
mov dword [ebp - 0x14], ecx
lea ecx, [ebx + esi*2]
mov ebx, ecx
shr ebx, 0x12
add bl, 0xf0
mov byte [edi], bl
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [edi + 1], cl
mov ecx, dword [ebp - 0x14]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 2], al
add edx, 4
mov eax, dword [ebp - 0x20]
and al, 0x3f
or al, 0x80
mov byte [edi + 3], al
lea eax, [edi + 4]
mov esi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
xor ebx, edi
not edi
and edi, eax
add ebx, ecx
add edi, edi
sub ebx, edi
mov edx, esi
mov edi, eax
mov ecx, ebx
movzx ebx, word [edx]
test bx, bx
je 0x420ff0
test ecx, ecx
jne 0x420ec0
jmp 0x420ff0
movzx eax, ax
cmp eax, 0xdc00
jne 0x420fc4
mov edx, esi
jmp 0x420fa4
cmp ecx, 3
jb 0x420fec
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 1], al
and bl, 0x3f
or bl, 0x80
lea eax, [edi + 3]
mov byte [edi + 2], bl
jmp 0x420f90
mov eax, edi
jmp 0x420f90
mov byte [edi], 0
mov edx, dword [ebp - 0x138]
mov dword [edx], 0x8d8e8fdf
mov dword [edx + 4], 0x81f1f68b
mov dword [edx + 8], 0x9c88868f
mov dword [edx + 0xc], 0x999dfad9
mov dword [edx + 0x10], 0x9c9f9e90
mov dword [edx + 0x14], 0x9490f3d1
mov dword [edx + 0x18], 0xde9a9ce2
mov dword [edx + 0x1c], 0xb5aee5ad
mov word [edx + 0x20], 0x3fa8
mov dword [edx + 0x22], 0
mov eax, 0xee8a7045
mov ecx, 0x11758fba
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [edx + eax + 0x11758fbb]
mov edi, ecx
or edi, esi
mov edx, edi
sub edx, esi
add edx, eax
and edx, edi
mov ebx, edx
not ebx
and ebx, 0xa6
and edx, 0x59
sub ebx, edx
mov edx, dword [ebp - 0x138]
mov byte [edx + eax + 0x11758fbb], bl
inc eax
dec ecx
cmp eax, 0xee8a706b
jne 0x421050
mov ecx, dword [ebp + 8]
push dword [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
push esi
push edx
call fcn.00409090
mov ebx, eax
jmp dword [0x443640]
push esi
call fcn.004081c0
add esp, 4
and bl, 1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cli
inc ecx
add byte [eax - 6], ah
inc ecx
add byte [eax - 6], ah
inc ecx
add byte [edi - 6], ah
inc ecx
add byte [esi - 0xcffbe06], cl
cli
inc ecx
add byte [edi - 0x5fffbe06], dl
cli
inc ecx
add byte [eax - 0x54ffbe06], ah
cli
inc ecx
add byte [edx - 0x43ffbdf0], ch
cli
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add bl, dh
cli
inc ecx
add byte [ecx - 5], al
inc ecx
add byte [eax - 5], dl
inc ecx
add byte [ecx - 5], bh
inc ecx
add byte [eax - 0x5fffbe05], al
push es
inc edx
add byte [eax - 0x5fffbdfa], ah
push es
inc edx
add byte [edx - 0x3fffbdfa], ah
push es
inc edx
add byte [eax + 7], bl
inc edx
add byte [eax + 7], al
inc edx
add byte [edi + 8], ah
inc edx
add byte [eax + 8], dl
inc edx
add byte [ebx + 0x20004208], bl
or eax, 0x8ed0042
inc edx
add byte [eax], cl
or dword [edx], eax
xor byte [ecx], cl
inc edx
add byte [esp + ecx + 0x42], bl
add byte [eax], al
or al, 0x42
add byte [eax], al
or al, 0x42
add byte [eax - 0x41ffbdf6], dh
or al, byte [edx]
adc byte [ebx], cl
inc edx
add byte [edi], dl
or dword [edx], eax
aam 0xa
inc edx
add al, al
or dword [edx], eax
ror byte [ecx], 0x42
add dl, al
or dword [edx], eax
ror byte [ecx], 0x42
add bl, dl
or eax, dword [edx]
ror byte [ecx], 1
inc edx
add al, ah
or eax, dword [edx]
loopne 0x443639
inc edx
add al, ah
or eax, dword [edx]
loop 0x443641
inc edx
add dh, dh
or eax, 0xfae00042
inc ecx
add byte [ecx - 0x55ffbdf0], ah
adc byte [edx], al
stosb byte es:[edi], al
adc byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
inc eax
adc al, 0x42
add byte [edx + 0x47004213], dh
adc al, 0x42
add byte [edi + 0x19], ah
inc edx
add byte [eax + 0x14], dl
inc edx
add byte [eax + 0x14], dh
inc edx
add byte [edx + 0x14], bl
inc edx
add byte [edx - 0x55ffbde3], ch
sbb eax, 0x1daa0042
inc edx
add byte [edx - 0x70ffbde3], ch
sbb al, 0x42
add byte [eax + 0x1b], dl
inc edx
add byte [eax + 0x17], ah
inc edx
add byte [edx + 0x4000421d], ch
pop ss
inc edx
add byte [ecx + 0x4214], dh
adc eax, 0x15000042
inc edx
add byte [edx + 0x3000421d], ch
adc eax, 0x15d40042
inc edx
add dh, cl
adc eax, 0x15250042
inc edx
add cl, dh
adc al, 0x42
add byte [ecx], al
add byte [eax], al
add cl, dh
adc al, 0x42
add byte [esi], al
pop ss
inc edx
add byte [eax + 0x5c004214], ah
sbb eax, dword [edx]
xor byte [ebx], bl
inc edx
add byte [eax - 0x6fffbdec], dl
adc al, 0x42
add byte [eax], dh
sbb eax, dword [edx]
xor byte [ebx], bl
inc edx
add byte [eax + 0x14], dh
inc edx
add byte [edx + 0x3000421d], ch
adc al, 0x42
add byte [eax + 0x14], al
inc edx
add byte [edx - 0x29ffbded], dh
adc eax, dword [edx]
salc
adc eax, dword [edx]
mov ah, 0x1c
inc edx
add byte [esp + ebx + 0x1daa0042], dh
inc edx
add byte [ecx + 0x1d], bh
inc edx
add byte [edx - 0x6fffbde3], al
sbb eax, 0x1d920042
inc edx
add byte [edx - 0x5fffbde3], dl
pop ss
inc edx
add byte [eax + 0x1c], dh
inc edx
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x29ffbdec], dl
adc eax, dword [edx]
nop
sbb eax, 0x2c0e0042
inc edx
add byte [esp], cl
inc edx
add byte [ecx], ah
sub al, 0x42
add byte [ecx], al
add byte [eax], al
add byte [ecx], ah
sub al, 0x42
add byte [ecx], ah
sub al, 0x42
add byte [eax], dh
and al, 0x42
add byte [eax], dh
and al, 0x42
add byte [esi], cl
sub al, 0x42
add byte [eax], bh
and al, 0x42
add byte [edx], dl
sub eax, dword [edx]
das
and eax, 0x2c210042
inc edx
add byte [edi + 0x25], ah
inc edx
add byte [ebx + 0x4225], dl
inc edx
add bh, ah
and eax, 0x25e70042
inc edx
add byte [ecx], dl
inc edx
add byte [edi + 0x26], cl
inc edx
add byte [edi + 0x26], bh
inc edx
add byte [eax + 0x7e004226], dl
sub dword [edx], eax
xchg byte [ecx], ch
inc edx
add byte [edx - 0x4cffbdd7], dl
sub dword [edx], eax
cmp dword [edx], ebp
inc edx
add byte [ebx], ch
sub al, byte [edx]
test eax, 0xcd00422a
sub al, byte [edx]
test eax, 0xf0004229
sub al, byte [edx]
jmp [edx]