Function at 0x420d42
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21e8
call fcn.00408490
mov dword [esp + 0x11e8], 0x23f0218c
mov dword [esp + 0x11ec], 0x27e125e1
mov dword [esp + 0x11f0], 0x3be939e1
mov dword [esp + 0x11f4], 0x3fec3de8
mov dword [esp + 0x11f8], 0x339e3199
mov dword [esp + 0x11fc], 0x37e535e1
mov dword [esp + 0x1200], 0xbd809cd
mov word [esp + 0x1204], 0xd0c
mov dword [esp + 0x1206], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x11e8]
lea esi, [eax + 0x48]
mov ecx, 0xb7
sub ecx, eax
xor ecx, esi
and ecx, edx
xor ecx, esi
add cl, 0x98
mov byte [esp + eax + 0x11e8], cl
mov ecx, eax
not ecx
or ecx, 1
add ecx, eax
xor eax, 1
lea eax, [eax + ecx*2]
add eax, 2
cmp eax, 0x22
jb case.default.0x42001a
lea eax, [esp + 0x2c]
lea ebp, [esp + 0x11e8]
push 0
push 0
push 0x20019
push eax
push ebp
call fcn.0043d310
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x4435e8]
lea eax, [esp + 0x60]
lea ecx, [esp + 0x28]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x4c]
call fcn.0043d700
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4435f0]
mov eax, dword [case.0x42001a.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
jmp 0x42175b
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x40], 0
cmp ecx, dword [esp + 0x28]
setb al
xor edi, edi
jmp dword [eax*4 + 0x443608]
mov word [ebp], 0
mov eax, dword [esp + 0x40]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x443610]
movzx ebx, word [esp + 0x11e8]
xor edi, edi
test bx, bx
je 0x42152b
lea eax, [esp + 0x11ea]
mov ecx, ebx
jmp 0x4214fc
inc edi
xor eax, eax
cmp edi, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x443608]
mov esi, dword [esp + 0x60]
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x4200e3
mov eax, 0xffffffff
push eax
call fcn.004084c0
add esp, 4
mov dword [esp + 0x5c], esi
mov esi, eax
lea eax, [esp + 0x5c]
push eax
push esi
push edi
push dword [esp + 0x38]
call fcn.0043d430
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443618]
jmp dword [0x4436b8]
lea eax, [esp + 0x50]
push dword [esp + 0x2c]
push 0
push 0x20019
push eax
push esi
call fcn.0043d310
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443620]
jmp dword [0x4436b8]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x78], 0xd77fc91d
mov dword [esp + 0x7c], 0xd36cd57b
mov dword [esp + 0x80], 0xdf61d163
mov dword [esp + 0x84], 0xdb70dd6f
mov dword [esp + 0x88], 0xa702d964
mov dword [esp + 0x8c], 0xa30ba57f
mov dword [esp + 0x90], 0xaf02a112
mov dword [esp + 0x94], 0xab11ad1f
mov dword [esp + 0x98], 0xb756a917
mov dword [esp + 0x9c], 0xb31fb561
mov dword [esp + 0xa0], 0xbf01b10f
mov dword [esp + 0xa4], 0xbb11bd1d
mov dword [esp + 0xa8], 0x8734b911
mov dword [esp + 0xac], 0x8362852f
mov dword [esp + 0xb0], 0x8f33815f
mov dword [esp + 0xb4], 0x8b358d22
mov dword [esp + 0xb8], 0x97298931
mov dword [esp + 0xbc], 0x933f9528
mov dword [esp + 0xc0], 0x9f3a9125
mov dword [esp + 0xc4], 0x9b249d4c
mov dword [esp + 0xc8], 0x67cc992b
mov dword [esp + 0xcc], 0x63d665cd
mov dword [esp + 0xd0], 0x6fd161cd
mov dword [esp + 0xd4], 0x6b936dc8
mov dword [esp + 0xd8], 0x778d6997
mov dword [esp + 0xdc], 0x73bd7589
mov dword [esp + 0xe0], 0x7fb471ba
mov dword [esp + 0xe4], 0x7b867d8c
mov dword [esp + 0xe8], 0x47b97989
mov dword [esp + 0xec], 0x43b345b5
mov dword [esp + 0xf0], 0x4fe241b1
mov dword [esp + 0xf4], 0x4b844db3
mov dword [esp + 0xf8], 0x57ae49b0
mov dword [esp + 0xfc], 0x53a25595
mov dword [esp + 0x100], 0x5faf51a0
mov dword [esp + 0x104], 0x5ba65dac
mov dword [esp + 0x108], 0x27d85996
mov dword [esp + 0x10c], 0x23d825e5
mov dword [esp + 0x110], 0x2fd521da
mov dword [esp + 0x114], 0x2b8e2dd6
mov dword [esp + 0x118], 0x2928
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x2e
xor cl, byte [esp + eax + 0x78]
add cl, 0x1a
mov byte [esp + eax + 0x78], cl
inc eax
cmp eax, 0xa4
jne 0x420320
lea edi, [esp + 0x91c]
lea eax, [esp + 0x78]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [esp + 0x118]
mov eax, edx
mov ecx, 1
lea edi, [esp + 0x9bc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0xcf57c9b5
mov dword [esp + 0x7c], 0xc354cdab
mov dword [esp + 0x80], 0xc751c153
mov dword [esp + 0x84], 0xfb60c557
mov dword [esp + 0x88], 0xff92f96c
mov dword [esp + 0x8c], 0xf36bfd97
mov dword [esp + 0x90], 0xf792f162
mov dword [esp + 0x94], 0xeb61f567
mov dword [esp + 0x98], 0xefcee97f
mov dword [esp + 0x9c], 0xe396ed9e
mov dword [esp + 0xa0], 0xe7a1e18c
mov dword [esp + 0xa4], 0x1b8ce571
mov dword [esp + 0xa8], 0x1f7b198e
mov dword [esp + 0xac], 0x13861d8e
mov dword [esp + 0xb0], 0x1773117a
mov dword [esp + 0xb4], 0xb9d1582
mov dword [esp + 0xb8], 0xf9d0991
mov dword [esp + 0xbc], 0x36e0d9e
mov dword [esp + 0xc0], 0x79f016b
mov dword [esp + 0xc4], 0x3b5e0596
mov dword [esp + 0xc8], 0x3fb539ab
mov dword [esp + 0xcc], 0x33123dab
mov dword [esp + 0xd0], 0x3753314d
mov dword [esp + 0xd4], 0x2bbd35a3
mov dword [esp + 0xd8], 0x2fb52949
mov dword [esp + 0xdc], 0x23b02db5
mov dword [esp + 0xe0], 0x270621bb
mov dword [esp + 0xe4], 0x5bcf2553
mov dword [esp + 0xe8], 0x5fc9593e
mov dword [esp + 0xec], 0x53c55dd5
mov dword [esp + 0xf0], 0x573351c4
mov dword [esp + 0xf4], 0x4b2655c9
mov dword [esp + 0xf8], 0x4fd84938
mov dword [esp + 0xfc], 0x43d84ddf
mov dword [esp + 0x100], 0x47da41d9
mov dword [esp + 0x104], 0x7bed4521
mov dword [esp + 0x108], 0x7f0d7914
mov dword [esp + 0x10c], 0x73e67de9
mov dword [esp + 0x110], 0x77e571ec
mov dword [esp + 0x114], 0x6bf575e7
mov dword [esp + 0x118], 0x6f276904
mov dword [esp + 0x11c], 0x63296d3b
mov dword [esp + 0x120], 0x67216135
mov dword [esp + 0x124], 0x9be0651e
mov dword [esp + 0x128], 0x9fca99c8
mov dword [esp + 0x12c], 0x93c59dcd
mov dword [esp + 0x130], 0x97c791c1
mov dword [esp + 0x134], 0x8bee95c5
mov dword [esp + 0x138], 0x8fc889df
mov dword [esp + 0x13c], 0x83ca8dc4
mov dword [esp + 0x140], 0x87d681c1
mov dword [esp + 0x144], 0xbbeb85d4
mov dword [esp + 0x148], 0xbfeab9e8
mov dword [esp + 0x14c], 0xb3e4bdfa
mov dword [esp + 0x150], 0xb7fcb1f1
mov dword [esp + 0x154], 0xabe1b5fe
mov dword [esp + 0x158], 0xafc2a9e2
mov word [esp + 0x15c], 0xadac
mov byte [edx + 0x48], 0
mov word [edx + 0x46], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x78]
mov edx, eax
and edx, 0xa4
mov esi, ecx
xor esi, 0xb2089e52
add esi, edx
mov edx, esi
and edx, edi
add edx, edx
add esi, edi
mov edi, edx
xor edi, esi
not edx
and edx, esi
add edx, edx
sub edx, edi
add dl, 0x66
mov byte [esp + ecx + 0x78], dl
inc ecx
add eax, 2
cmp ecx, 0xe9
jne 0x4205f0
lea edi, [esp + 0x9be]
lea eax, [esp + 0x78]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x15c]
lea edi, [esp + 0xaa2]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0x933b9125
mov dword [esp + 0x7c], 0x9f0c9d3f
mov dword [esp + 0x80], 0x9b09990f
mov dword [esp + 0x84], 0x87288513
mov dword [esp + 0x88], 0x8326811c
mov dword [esp + 0x8c], 0x8f208d3b
mov dword [esp + 0x90], 0x8b238926
mov dword [esp + 0x94], 0x77db75d7
mov dword [esp + 0x98], 0x73a371d4
mov dword [esp + 0x9c], 0x7fa87daf
mov dword [esp + 0xa0], 0x7bde79a8
mov dword [esp + 0xa4], 0x67fb65d3
mov dword [esp + 0xa8], 0x63f661fc
mov dword [esp + 0xac], 0x6ff96dfb
mov dword [esp + 0xb0], 0x6bce69c3
mov dword [esp + 0xb4], 0x57c455e4
mov dword [esp + 0xb8], 0x53fc51c7
mov dword [esp + 0xbc], 0x5fca5df5
mov dword [esp + 0xc0], 0x5bc959f5
mov dword [esp + 0xc4], 0x47f145e0
mov dword [esp + 0xc8], 0x43de41dd
mov dword [esp + 0xcc], 0x4fd94dd8
mov dword [esp + 0xd0], 0x4be149df
mov dword [esp + 0xd4], 0x37ef3590
mov dword [esp + 0xd8], 0x33ed31e3
mov dword [esp + 0xdc], 0x3ffd3de1
mov dword [esp + 0xe0], 0x3bf439f6
mov dword [esp + 0xe4], 0x27fa25f4
mov dword [esp + 0xe8], 0x23f121f1
mov dword [esp + 0xec], 0x2fff2dfd
mov dword [esp + 0xf0], 0x2b8629f9
mov dword [esp + 0xf4], 0x17d415c7
mov dword [esp + 0xf8], 0x13ca11c8
mov dword [esp + 0xfc], 0x1fce1ddd
mov dword [esp + 0x100], 0x1bcb19c8
mov dword [esp + 0x104], 0x7da05d4
mov dword [esp + 0x108], 0x3d001c2
mov dword [esp + 0x10c], 0xfd00dcd
mov dword [esp + 0x110], 0xbd509d6
mov dword [esp + 0x114], 0xf752f52a
mov dword [esp + 0x118], 0xf1f0
mov eax, 0xa9eae464
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x56151c14]
lea edx, [eax + 0x56151c00]
and edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0x2e698a0b
xor ecx, 0xae698a0b
lea esi, [ecx + edx*2]
lea ecx, [ecx + edx*2]
add ecx, 2
mov edx, 0x7d
sub edx, esi
and edx, 0x81
and ecx, 0x7e
sub ecx, edx
mov byte [esp + eax + 0x56151c14], cl
inc eax
cmp eax, 0xa9eae508
jne 0x420820
mov dword [esp], ebp
lea edi, [esp + 0x87a]
lea eax, [esp + 0x78]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x118]
lea edi, [esp + 0x91a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0xc95dcbbf
mov dword [esp + 0x7c], 0xc548c755
mov dword [esp + 0x80], 0xc14fc355
mov dword [esp + 0x84], 0xfd64ff51
mov dword [esp + 0x88], 0xf99efb70
mov dword [esp + 0x8c], 0xf56cf789
mov dword [esp + 0x90], 0xf165f36e
mov dword [esp + 0x94], 0xed75ef6d
mov dword [esp + 0x98], 0xe9a5eb88
mov dword [esp + 0x9c], 0xe5b4e7a4
mov dword [esp + 0xa0], 0xe186e3b4
mov dword [esp + 0xa4], 0x1d951f91
mov dword [esp + 0xa8], 0x198e1b90
mov dword [esp + 0xac], 0x15871789
mov dword [esp + 0xb0], 0x11761381
mov dword [esp + 0xb4], 0xd800f60
mov dword [esp + 0xb8], 0x9900b9d
mov dword [esp + 0xbc], 0x592079f
mov dword [esp + 0xc0], 0x18f039f
mov dword [esp + 0xc4], 0x3d4f3f64
mov dword [esp + 0xc8], 0x39b63bb7
mov dword [esp + 0xcc], 0x35a737ac
mov dword [esp + 0xd0], 0x31a733a5
mov dword [esp + 0xd4], 0x2d692f54
mov dword [esp + 0xd8], 0x29632b61
mov dword [esp + 0xdc], 0x255b2763
mov dword [esp + 0xe0], 0x2158235e
mov dword [esp + 0xe4], 0x5d125f70
mov dword [esp + 0xe8], 0x59175b13
mov dword [esp + 0xec], 0x55195717
mov dword [esp + 0xf0], 0x51ce531b
mov dword [esp + 0xf4], 0x4d304f1d
mov dword [esp + 0xf8], 0x49024b04
mov dword [esp + 0xfc], 0x45164737
mov dword [esp + 0x100], 0x410d4314
mov dword [esp + 0x104], 0x7d327f10
mov dword [esp + 0x108], 0x79347b02
mov dword [esp + 0x10c], 0x753c7707
mov dword [esp + 0x110], 0x713b733e
mov dword [esp + 0x114], 0x6d0a6f3a
mov word [esp + 0x118], 0x6b6c
mov dword [esp + 0x11a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xd3
xor cl, byte [esp + eax + 0x78]
add cl, 0xe1
mov byte [esp + eax + 0x78], cl
inc eax
cmp eax, 0xa6
jne 0x420a70
lea ebp, [esp + 0xb46]
lea eax, [esp + 0x78]
mov edi, ebp
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x118]
mov ecx, 1
lea edi, [esp + 0xbe6]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0x33ab3185
mov dword [esp + 0x7c], 0x2fbc2d8f
mov dword [esp + 0x80], 0x2bb929bf
mov dword [esp + 0x84], 0x27b825b3
mov dword [esp + 0x88], 0x238621ac
mov dword [esp + 0x8c], 0x1f801dab
mov dword [esp + 0x90], 0x1b831986
mov dword [esp + 0x94], 0x178b15b7
mov dword [esp + 0x98], 0x134311b4
mov dword [esp + 0x9c], 0xf580d41
mov dword [esp + 0xa0], 0xbae0958
mov dword [esp + 0xa4], 0x78b05b3
mov dword [esp + 0xa8], 0x396018c
mov dword [esp + 0xac], 0x7fe97deb
mov dword [esp + 0xb0], 0x7bde79e3
mov dword [esp + 0xb4], 0x77e475c4
mov dword [esp + 0xb8], 0x73ec71e7
mov dword [esp + 0xbc], 0x6ffa6df5
mov dword [esp + 0xc0], 0x6bf969f5
mov dword [esp + 0xc4], 0x67d165c0
mov dword [esp + 0xc8], 0x63ee61ed
mov dword [esp + 0xcc], 0x5fc95dc8
mov dword [esp + 0xd0], 0x5bc159cf
mov dword [esp + 0xd4], 0x571f55f0
mov dword [esp + 0xd8], 0x531d5103
mov dword [esp + 0xdc], 0x4f0d4d01
mov dword [esp + 0xe0], 0x4bf449f6
mov dword [esp + 0xe4], 0x470a4514
mov dword [esp + 0xe8], 0x43114111
mov dword [esp + 0xec], 0xbfefbded
mov dword [esp + 0xf0], 0xbb26b9e9
mov dword [esp + 0xf4], 0xb7f4b5e7
mov dword [esp + 0xf8], 0xb3fab1f8
mov dword [esp + 0xfc], 0xaffeaded
mov dword [esp + 0x100], 0xabfba9f8
mov dword [esp + 0x104], 0xa7eaa5f4
mov dword [esp + 0x108], 0xa3f0a1e2
mov dword [esp + 0x10c], 0x9fd09ddd
mov dword [esp + 0x110], 0x9bd599d6
mov dword [esp + 0x114], 0x973295da
mov word [esp + 0x118], 0x9190
lea eax, [esp + 0x118]
mov byte [eax + 4], 0
mov word [eax + 2], 0
mov ecx, 0x8c
mov edx, 0x73
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x14]
mov eax, ebx
not eax
or eax, edx
mov esi, eax
not esi
and eax, 2
mov edi, esi
and edi, 0xfffffffd
imul edi, eax
mov eax, esi
and eax, 2
or esi, 2
imul esi, eax
add esi, edi
mov eax, esi
xor eax, ecx
and esi, edx
add esi, esi
sub eax, esi
add al, bl
add al, 0x44
mov byte [esp + ecx - 0x14], al
inc ecx
dec edx
cmp ecx, 0x131
jne 0x420c90
lea edx, [esp + 0xaa4]
lea esi, [esp + 0x78]
mov eax, esi
mov ecx, 0x28
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x118]
lea edi, [esp + 0xb44]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0x91c]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x9be]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x87a]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], edx
xor ecx, ecx
mov eax, dword [case.0x42001a.17]
mov ebp, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x443638]
mov dword [esp + 0x54], ecx
mov eax, dword [esp + ecx + 0x64]
mov dword [esp + 0x78], 0x41164714
mov dword [esp + 0x7c], 0x4d124310
mov dword [esp + 0x80], 0x491e4f1c
mov dword [esp + 0x84], 0xb5f24b18
mov word [esp + 0x88], 0xb7b4
lea ecx, [esp + 0x118]
mov byte [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xf1
xor dl, byte [esp + ecx + 0x78]
add dl, 0x4b
mov byte [esp + ecx + 0x78], dl
inc ecx
cmp ecx, 0x17
jne 0x420db0
movzx ecx, word [eax]
lea edi, [esp + 0xfe8]
test cx, cx
je 0x420df1
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x420de0
mov word [edi], 0
movzx eax, word [esp + 0x78]
test ax, ax
je 0x420e21
lea ecx, [esp + 0x7a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420e10
mov word [edi], 0
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [esp + 0x38], edi
jmp dword [eax*4 + 0x443640]
inc ebx
xor eax, eax
cmp bx, 0x35
setb al
mov ecx, ebx
jmp dword [eax*4 + 0x443640]
mov word [edi - 2], cx
lea eax, [esp + 0x24]
mov ebx, ecx
lea ecx, [esp + 0xfe8]
push dword [esp + 0x50]
push 0
push 0x20019
push eax
push ecx
call fcn.0043d310
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443648]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x4c], 0x800
mov dword [esp + 8], 0x400
mov dword [esp + 0x44], 0
xor ebx, ebx
jmp dword [0x443650]
lea eax, [esp + 8]
lea edi, [esp + 0xbe8]
lea ecx, [esp + 0x48]
lea edx, [esp + 0x4c]
push eax
push edi
push ecx
push edx
push esi
push ebx
push dword [esp + 0x3c]
call fcn.0043da00
add esp, 0x1c
jmp dword [0x44365c]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443660]
test byte [esp + 0x44], 1
sete al
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], ecx
cmp ecx, 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x443668]
mov eax, dword [case.0x421421.12]
nop
nop
jmp eax
mov dword [esp + 4], ebx
mov dword [esp], ebp
mov dword [esp + 0xc], 0x29cf2be3
mov dword [esp + 0x10], 0x2dbf2fcd
mov dword [esp + 0x14], 0xd140d3b7
mov dword [esp + 0x18], 0xd5d6d744
mov word [esp + 0x1c], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
and eax, 0x2e
mov ebx, edx
xor ebx, 0x77
add ebx, eax
xor bl, byte [esp + edx + 0xc]
add bl, 0xad
mov byte [esp + edx + 0xc], bl
inc edx
add ecx, 2
cmp edx, 0x12
jne 0x420f50
movzx ebx, word [esp + 0xc]
test bx, bx
je 0x420fbd
lea ecx, [esp + 0x78]
lea ebp, [esp + 0xc]
mov esi, ecx
jmp 0x420f99
movzx ebx, word [ebp]
test bx, bx
je 0x420fbd
movzx eax, word [ecx]
test ax, ax
je 0x420fbb
add ecx, 2
add ebp, 2
lea edx, [esi + 2]
cmp ax, bx
je 0x420fb3
mov esi, edx
mov ecx, edx
je 0x420f90
lea ebp, [esp + 0xc]
jmp 0x420f90
xor esi, esi
xor eax, eax
test esi, esi
setne al
mov ebp, dword [esp]
lea esi, [esp + 0x78]
mov ebx, dword [esp + 4]
jmp dword [eax*4 + 0x443670]
xor ecx, ecx
cmp dword [esp + 0x58], 3
sete cl
jmp dword [ecx*4 + 0x443698]
inc ebx
jmp dword [0x443650]
mov dword [esp], ebp
mov dword [esp + 0xc], 0x81258754
mov dword [esp + 0x10], 0x8d3f833d
mov dword [esp + 0x14], 0x893f8f35
mov dword [esp + 0x18], 0x95268b3a
mov word [esp + 0x1c], 0x9794
lea eax, [esp + 0x1e]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x61
mov ecx, 0x9e
movzx edx, byte [esp + eax - 0x55]
mov esi, edx
not esi
mov edi, eax
and edi, esi
or esi, ecx
add edx, esi
inc edx
or edx, edi
add dl, 0x1b
mov byte [esp + eax - 0x55], dl
inc eax
dec ecx
cmp eax, 0x78
jne 0x421030
movzx edi, word [esp + 0xc]
lea eax, [esp + 0x78]
test di, di
lea esi, [esp + 0x78]
je 0x42114a
lea ecx, [esp + 0x78]
lea edx, [esp + 0xc]
mov eax, ecx
jmp 0x42108c
movzx edi, word [edx]
test di, di
je 0x42114a
mov ebp, ebx
movzx ebx, word [ecx]
test bx, bx
je 0x421146
add ecx, 2
add edx, 2
lea esi, [eax + 2]
cmp bx, di
je 0x4210ac
mov eax, esi
mov ecx, esi
lea esi, [esp + 0x78]
mov ebx, ebp
je 0x421080
lea edx, [esp + 0xc]
jmp 0x421080
jmp dword [0x443678]
mov edx, dword [esp + 8]
mov eax, edx
shr eax, 0x1f
add eax, edx
and eax, 0xfffffffe
sub edx, eax
je 0x421168
mov eax, ebp
mov ecx, edx
test dl, 1
je 0x42110a
mov eax, edx
not eax
lea ecx, [eax + edx*2]
movzx esi, word [esp + 0xbe8]
xor eax, eax
test si, si
setne al
lea edi, [esp + eax*2]
add edi, 0xbe8
lea eax, [ebp + 2]
mov word [ebp], si
lea esi, [esp + 0x78]
cmp edx, 1
je 0x42116a
nop
movzx edx, word [edi]
xor ebx, ebx
test dx, dx
setne bl
lea esi, [edi + ebx*2]
mov word [eax], dx
movzx edx, word [edi + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
lea edi, [esi + ebx*2]
mov word [eax + 2], dx
add eax, 4
add ecx, 0xfffffffe
jne 0x421110
lea esi, [esp + 0x78]
mov ebx, dword [esp + 4]
jmp 0x42116a
xor eax, eax
mov ebx, ebp
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4436a0]
inc ebx
mov ebp, dword [esp]
jmp dword [0x443650]
jmp dword [0x4436ac]
mov eax, ebp
mov dword [eax], 0x20003a
jmp case.0x421421.14
mov dword [eax], 0x20003a
jmp dword [0x443684]
mov edx, dword [esp + 8]
mov eax, ebp
cmp edx, 2
jb 0x421180
mov ebx, edx
shr ebx, 1
test dl, 2
jne 0x4211b0
lea edx, [esp + 0xbe8]
mov eax, ebp
mov ecx, ebx
jmp 0x4211dd
and edx, 0xfffffffe
mov ecx, ebx
not ecx
add ecx, edx
movzx esi, word [esp + 0xbe8]
xor eax, eax
test si, si
setne al
lea edx, [esp + eax*2]
add edx, 0xbe8
lea eax, [ebp + 2]
mov word [ebp], si
lea esi, [esp + 0x78]
cmp ebx, 1
mov ebx, dword [esp + 4]
je 0x421180
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edx]
xor ebx, ebx
test si, si
setne bl
lea edi, [edx + ebx*2]
mov word [eax], si
movzx esi, word [edx + ebx*2]
xor edx, edx
test si, si
setne dl
lea edx, [edi + edx*2]
mov word [eax + 2], si
add eax, 4
add ecx, 0xfffffffe
jne 0x4211f0
lea esi, [esp + 0x78]
mov ebx, dword [esp + 4]
jmp 0x421180
add eax, 4
mov cl, 1
mov dword [esp + 0x44], ecx
inc ebx
mov ebp, eax
jmp dword [0x443650]
mov eax, dword [esp + 8]
shl eax, 2
mov ecx, dword [esp]
test eax, eax
je 0x421294
mov dword [esp + 4], ebx
lea edx, [esp + 0xbe8]
mov ecx, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edx]
xor ebx, ebx
test si, si
setne bl
lea edi, [edx + ebx*2]
mov word [ecx], si
movzx esi, word [edx + ebx*2]
xor edx, edx
test si, si
setne dl
lea edx, [edi + edx*2]
mov word [ecx + 2], si
add ecx, 4
add eax, 0xfffffffe
jne 0x421260
lea esi, [esp + 0x78]
mov ebx, dword [esp + 4]
mov word [ecx], 0xa
mov dword [esp + 4], ebx
mov ebx, dword [esp + 8]
mov eax, dword [esp]
cmp ebx, 2
jb 0x421320
mov ecx, ebx
shr ecx, 1
lea edx, [esp + 0xbe8]
mov eax, dword [esp]
mov ebp, ecx
test bl, 2
je 0x4212eb
and ebx, 0xfffffffe
mov ecx, ebp
not ecx
add ecx, ebx
movzx esi, word [esp + 0xbe8]
xor eax, eax
test si, si
setne al
lea edx, [esp + eax*2 + 0xbe8]
mov edi, dword [esp]
lea eax, [edi + 2]
mov word [edi], si
lea esi, [esp + 0x78]
cmp ebp, 1
je 0x421320
movzx esi, word [edx]
xor ebx, ebx
test si, si
setne bl
lea edi, [edx + ebx*2]
mov word [eax], si
movzx esi, word [edx + ebx*2]
xor edx, edx
test si, si
setne dl
lea edx, [edi + edx*2]
mov word [eax + 2], si
add eax, 4
add ecx, 0xfffffffe
jne 0x4212f0
lea esi, [esp + 0x78]
mov word [eax], 0xa
mov ebx, dword [esp + 4]
jmp dword [0x4436b0]
add eax, 2
mov cl, 1
mov dword [esp + 0x40], ecx
inc ebx
mov ebp, eax
jmp dword [0x443650]
lea eax, [esp + 8]
lea ecx, [esp + 0xbe8]
lea edx, [esp + 0x48]
mov edi, esi
lea esi, [esp + 0x4c]
push eax
push ecx
push edx
push esi
mov esi, edi
push edi
push ebx
push dword [esp + 0x3c]
call fcn.0043da00
add esp, 0x1c
jmp case.0x42001a.24
mov ebx, esi
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], 0x383b3a3d
xor ecx, ecx
mov edx, ecx
add dl, 0x8b
xor dl, byte [esp + ecx + 0xc]
add dl, 0x49
mov byte [esp + ecx + 0xc], dl
inc ecx
cmp ecx, 4
jne 0x421390
mov ecx, dword [0x449860]
test ecx, ecx
je 0x4213e0
mov edx, dword [esp + 0xc]
xor esi, esi
mov edi, dword [0x449864]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x4213d0
inc esi
cmp ecx, esi
jne 0x4213c0
jmp 0x4213e0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne case.default.0x4213f4
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x3c]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
mov esi, ebx
mov edi, dword [esp + 0x38]
jmp dword [eax*4 + 0x443640]
push eax
push 4
push ecx
push dword [0x449868]
call fcn.00439510
add esp, 0x10
mov ecx, dword [esp + 0x3c]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
mov esi, ebx
mov edi, dword [esp + 0x38]
jmp dword [eax*4 + 0x443640]
mov ecx, dword [esp + 0x54]
add ecx, 4
mov eax, dword [case.0x42001a.17]
jmp case.0x42001a.14
mov eax, dword [esp + 0x50]
mov dword [esp + 0x78], 0x383b3a3d
xor ecx, ecx
nop
nop
mov edx, ecx
add dl, 0x8b
xor dl, byte [esp + ecx + 0x78]
add dl, 0x49
mov byte [esp + ecx + 0x78], dl
inc ecx
cmp ecx, 4
jne 0x421450
mov ecx, dword [0x449860]
test ecx, ecx
je 0x4214a0
mov edx, dword [esp + 0x78]
xor esi, esi
mov edi, dword [0x449864]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x421490
inc esi
cmp ecx, esi
jne 0x421480
jmp 0x4214a0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4214c8
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp dword [0x4436b8]
push esi
call fcn.004084d0
add esp, 4
inc edi
xor eax, eax
cmp edi, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x443608]
push eax
push 4
push ecx
push dword [0x449868]
call fcn.00439510
add esp, 0x10
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp dword [0x4436b8]
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x42152b
cmp cx, 0x7f
jbe 0x4214f0
movzx edx, cx
cmp edx, 0x7ff
ja 0x421520
add edi, 2
jmp 0x4214f1
cmp cx, 0xffff
je 0x4214f1
add edi, 3
jmp 0x4214f1
lea eax, [edi + 1]
push eax
call fcn.004084c0
add esp, 4
mov esi, eax
mov dword [esp + 4], eax
test bx, bx
je 0x421669
mov esi, dword [esp + 4]
test edi, edi
je 0x421669
lea ebp, [esp + 0x11e8]
mov ecx, edi
mov esi, dword [esp + 4]
nop
movzx ebx, bx
lea edx, [ebp + 2]
cmp bx, 0x7f
ja 0x421580
lea eax, [esi + 1]
mov byte [esi], bl
jmp 0x421650
cmp ebx, 0x7ff
ja 0x4215c0
cmp ecx, 2
jb 0x4215c0
mov eax, ebx
shr eax, 6
mov ebp, ebx
shr ebp, 5
and ebp, 0x80
xor eax, 0xc0
add eax, ebp
mov byte [esi], al
and bl, 0x3f
or bl, 0x80
lea eax, [esi + 2]
mov byte [esi + 1], bl
jmp 0x421650
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x421617
cmp ecx, 4
jb 0x421617
movzx edx, word [ebp + 2]
add ebp, 4
shl ebx, 0xa
lea eax, [ebx + edx]
add eax, 0xfca02400
mov ebx, eax
shr ebx, 0x12
add bl, 0xf0
mov byte [esi], bl
mov ebx, eax
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [esi + 1], bl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
and dl, 0x3f
or dl, 0x80
lea eax, [esi + 4]
mov byte [esi + 3], dl
mov edx, ebp
jmp 0x421650
movzx eax, ax
cmp eax, 0xdc00
jne 0x421625
mov ebp, edx
jmp 0x421658
cmp ecx, 3
jb 0x42164d
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [esi], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
and bl, 0x3f
or bl, 0x80
lea eax, [esi + 3]
mov byte [esi + 2], bl
jmp 0x421650
mov eax, esi
nop
add ecx, esi
sub ecx, eax
mov ebp, edx
mov esi, eax
movzx ebx, word [ebp]
test bx, bx
je 0x421669
test ecx, ecx
jne 0x421560
mov dword [esp], edi
mov byte [esi], 0
mov dword [esp + 0x78], 0xfdfeff0f
mov dword [esp + 0x7c], 0xe1f1f6fb
mov dword [esp + 0x80], 0xecf8e6ff
mov dword [esp + 0x84], 0xe9ed0a29
mov dword [esp + 0x88], 0xcefeef0
mov dword [esp + 0x8c], 0x1410f3d1
mov dword [esp + 0x90], 0xe0a0c02
mov dword [esp + 0x94], 0x151ec51d
mov word [esp + 0x98], 0xaf18
mov dword [esp + 0x9a], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x78]
mov ebx, eax
and ebx, 0x5a
mov esi, ecx
xor esi, 0xd1916b6d
add esi, ebx
mov edi, esi
and edi, edx
mov ebx, edi
or ebx, 0xfd
inc ebx
mov ebp, edi
and ebp, 0xfffffffd
imul ebp, ebx
xor esi, edx
mov ebx, edi
lea edx, [esi + edi*2]
and edi, 2
or ebx, 2
imul ebx, edi
sub ebp, ebx
add edx, ebp
add dl, 0xdf
mov byte [esp + ecx + 0x78], dl
inc ecx
add eax, 2
cmp ecx, 0x26
jne 0x4216e0
lea eax, [esp + 0x78]
mov ecx, dword [esp + 0x21fc]
push dword [esp]
mov esi, dword [esp + 8]
push esi
push eax
call fcn.00409370
jmp dword [0x4436c0]
push esi
mov esi, eax
call fcn.004084d0
mov eax, esi
add esp, 4
and al, 1
add esp, 0x21e8
pop esi
pop edi
pop ebx
pop ebp
ret