Function at 0x423fb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21e4
call fcn.00409740
mov dword [esp + 0x11e4], 0xf904fb18
mov dword [esp + 0x11e8], 0xe52fe733
mov dword [esp + 0x11ec], 0xe11fe313
mov dword [esp + 0x11f0], 0xed10ef1c
mov dword [esp + 0x11f4], 0xe90eeb0b
mov dword [esp + 0x11f8], 0x956b9713
mov dword [esp + 0x11fc], 0x916c935f
mov dword [esp + 0x1200], 0x9f90
mov eax, 0xab
mov ecx, 0x54
movzx esi, byte [esp + eax + 0x1139]
mov edx, ecx
or edx, esi
lea edi, [ecx - 0x40]
mov ebx, eax
and ebx, 0xd5
and edi, 0x2a
or edi, ebx
xor edi, 0x2a
not esi
or esi, edi
not edx
lea ebx, [esi + esi]
not ebx
add ebx, esi
or ebx, edx
add bl, 0xa9
mov byte [esp + eax + 0x1139], bl
inc eax
dec ecx
cmp eax, 0xcb
jne case.default.0x423f14
lea eax, [esp + 0x20]
lea ebp, [esp + 0x11e4]
push 0
push 0
push 0x20019
push eax
push ebp
call fcn.00440b30
add esp, 0x14
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x44778c]
lea eax, [esp + 0x70]
lea ecx, [esp + 0x30]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x40]
call fcn.00440f50
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x447794]
xor ecx, ecx
jmp 0x4263e5
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x44], 0
cmp ecx, dword [esp + 0x30]
setb al
xor edi, edi
jmp dword [eax*4 + 0x44779c]
mov word [ebp], 0
mov ecx, dword [esp + 0x44]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x4477a4]
movzx ebx, word [esp + 0x11e4]
xor edi, edi
test bx, bx
je 0x4261ab
lea eax, [esp + 0x11e6]
mov ecx, ebx
jmp 0x42617c
inc edi
xor eax, eax
cmp edi, dword [esp + 0x30]
setb al
jmp dword [eax*4 + 0x44779c]
mov esi, dword [esp + 0x70]
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x423fd3
mov eax, 0xffffffff
push eax
call fcn.00409860
add esp, 4
mov dword [esp + 0x6c], esi
mov esi, eax
lea eax, [esp + 0x6c]
push eax
push esi
push edi
push dword [esp + 0x2c]
call fcn.00440c60
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4477ac]
jmp dword [0x44786c]
mov dword [esp], ebp
jmp dword [0x4477b4]
lea eax, [esp + 0x2c]
push dword [esp + 0x20]
push 0
push 0x20019
push eax
push esi
call fcn.00440b30
add esp, 0x14
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esp + 0x2c]
push dword [esp + 0x20]
push 0
push 0x20019
push eax
push esi
call fcn.00440b30
add esp, 0x14
jmp dword [0x4477bc]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4477c4]
jmp dword [0x44786c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
jmp dword [0x4477d0]
mov dword [esp + 0x74], 0xc16dc773
mov dword [esp + 0x78], 0xcd50c36d
mov dword [esp + 0x7c], 0xc953cf5d
mov dword [esp + 0x80], 0xb564cb59
mov dword [esp + 0x84], 0xb112b728
mov dword [esp + 0x88], 0xbd19b309
mov dword [esp + 0x8c], 0xb912bf2a
mov dword [esp + 0x90], 0xa523bb29
mov dword [esp + 0x94], 0xa146a739
mov dword [esp + 0x98], 0xad0da317
mov dword [esp + 0x9c], 0xa933af31
mov dword [esp + 0xa0], 0x9503ab0b
mov dword [esp + 0xa4], 0x9100973f
mov dword [esp + 0xa8], 0x9d729339
mov dword [esp + 0xac], 0x99019f21
mov dword [esp + 0xb0], 0x85079b3a
mov dword [esp + 0xb4], 0x811b871f
mov dword [esp + 0xb8], 0x8d2d831c
mov dword [esp + 0xbc], 0x892a8f1b
mov dword [esp + 0xc0], 0x75188b38
mov dword [esp + 0xc4], 0x71d877e5
mov dword [esp + 0xc8], 0x7de673db
mov dword [esp + 0xcc], 0x79e37fd3
mov dword [esp + 0xd0], 0x65a17bdc
mov dword [esp + 0xd4], 0x61bf67b9
mov dword [esp + 0xd8], 0x6daf63bf
mov dword [esp + 0xdc], 0x69a06fa2
mov dword [esp + 0xe0], 0x55b66bb8
mov dword [esp + 0xe4], 0x518b5787
mov dword [esp + 0xe8], 0x5d815383
mov dword [esp + 0xec], 0x59f25f8f
mov dword [esp + 0xf0], 0x45985b85
mov dword [esp + 0xf4], 0x419e479c
mov dword [esp + 0xf8], 0x4d924383
mov dword [esp + 0xfc], 0x499d4f9c
mov dword [esp + 0x100], 0x35964b98
mov dword [esp + 0x104], 0x31e437f6
mov dword [esp + 0x108], 0x3dec33f3
mov dword [esp + 0x10c], 0x39e73fe2
mov dword [esp + 0x110], 0x259e3be6
mov dword [esp + 0x114], 0x2724
xor eax, eax
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x74]
lea esi, [eax + 0xb1]
and esi, edx
lea ecx, [eax - 0x214da14f]
or ecx, edx
xor ecx, esi
mov edx, ecx
and edx, 0x86800688
mov esi, ecx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, edx
or edx, 2
imul edx, esi
mov esi, ecx
xor esi, 0x8a
add esi, edi
add esi, edx
and ecx, 1
xor esi, 1
lea ecx, [esi + ecx*2]
mov byte [esp + eax + 0x74], cl
add eax, 0xf3887279
mov ecx, eax
and ecx, 0x188
xor eax, 0xc778d88
lea eax, [eax + ecx*2]
cmp eax, 0xa4
jb 0x424250
lea edi, [esp + 0x918]
lea eax, [esp + 0x74]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [esp + 0x114]
mov eax, edx
lea edi, [esp + 0x9b8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x335b3165
mov dword [esp + 0x78], 0x3f4c3d5f
mov dword [esp + 0x7c], 0x3b49394f
mov dword [esp + 0x80], 0x47284533
mov dword [esp + 0x84], 0x4326413c
mov dword [esp + 0x88], 0x4f274d13
mov dword [esp + 0x8c], 0x4b26493e
mov dword [esp + 0x90], 0x57295523
mov dword [esp + 0x94], 0x53725123
mov dword [esp + 0x98], 0x5f025d0a
mov dword [esp + 0x9c], 0x5b19593c
mov dword [esp + 0xa0], 0x67146519
mov dword [esp + 0xa4], 0x630f6112
mov dword [esp + 0xa8], 0x6f126d1a
mov dword [esp + 0xac], 0x6b076936
mov dword [esp + 0xb0], 0x77057506
mov dword [esp + 0xb4], 0x73057119
mov dword [esp + 0xb8], 0x7f1a7d0a
mov dword [esp + 0xbc], 0x7b137927
mov dword [esp + 0xc0], 0x87ea85f2
mov dword [esp + 0xc4], 0x83fd81f7
mov dword [esp + 0xc8], 0x8fae8dff
mov dword [esp + 0xcc], 0x8be789dd
mov dword [esp + 0xd0], 0x97e595e7
mov dword [esp + 0xd4], 0x93fd91f1
mov dword [esp + 0xd8], 0x9fe89df5
mov dword [esp + 0xdc], 0x9bba99f7
mov dword [esp + 0xe0], 0xa7dba5f7
mov dword [esp + 0xe4], 0xa3d1a1c2
mov dword [esp + 0xe8], 0xafddadd5
mov dword [esp + 0xec], 0xabc7a9d4
mov dword [esp + 0xf0], 0xb7d2b5c1
mov dword [esp + 0xf4], 0xb3c0b1e0
mov dword [esp + 0xf8], 0xbfd0bdcb
mov dword [esp + 0xfc], 0xbbceb9d1
mov dword [esp + 0x100], 0xc7b5c5a9
mov dword [esp + 0x104], 0xc395c1a4
mov dword [esp + 0x108], 0xcfb2cdb1
mov dword [esp + 0x10c], 0xcbbdc9bc
mov dword [esp + 0x110], 0xd7bdd5a3
mov dword [esp + 0x114], 0xd3ebd1b4
mov dword [esp + 0x118], 0xdfe1ddef
mov dword [esp + 0x11c], 0xdb99d9e5
mov dword [esp + 0x120], 0xe7a8e5aa
mov dword [esp + 0x124], 0xe3dee1d0
mov dword [esp + 0x128], 0xefddeddd
mov dword [esp + 0x12c], 0xebdbe9d9
mov dword [esp + 0x130], 0xf79af5c5
mov dword [esp + 0x134], 0xf3b0f1c3
mov dword [esp + 0x138], 0xffc6fdc4
mov dword [esp + 0x13c], 0xfbcaf9b9
mov dword [esp + 0x140], 0x7370534
mov dword [esp + 0x144], 0x33e0130
mov dword [esp + 0x148], 0xf3c0d4e
mov dword [esp + 0x14c], 0xb340949
mov dword [esp + 0x150], 0x1729152a
mov dword [esp + 0x154], 0x1376112e
mov word [esp + 0x158], 0x1d1c
mov word [edx + 0x4a], 0
mov dword [edx + 0x46], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x74]
mov edx, eax
and edx, 0x68
mov esi, ecx
xor esi, 0x599b5534
add esi, edx
mov edx, esi
and edx, edi
mov ebx, edx
and ebx, 0xfffffffd
mov ebp, edx
and ebp, 2
or edx, 2
imul edx, ebp
xor ebp, 2
imul ebp, ebx
add edx, ebp
add esi, edi
mov edi, esi
not edi
and edi, edx
not edx
and edx, esi
sub edx, edi
add dl, 0xfc
mov byte [esp + ecx + 0x74], dl
inc ecx
add eax, 2
cmp ecx, 0xec
jne 0x424570
lea edi, [esp + 0x9ba]
lea eax, [esp + 0x74]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x158]
lea edi, [esp + 0xa9e]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x996d9b4f
mov dword [esp + 0x78], 0xa558a775
mov dword [esp + 0x7c], 0xa15fa355
mov dword [esp + 0x80], 0xad44af51
mov dword [esp + 0x84], 0xa94eab50
mov dword [esp + 0x88], 0xb55cb779
mov dword [esp + 0x8c], 0xb145b35e
mov dword [esp + 0x90], 0xbd55bf5d
mov dword [esp + 0x94], 0xb985bb58
mov dword [esp + 0x98], 0x45744785
mov dword [esp + 0x9c], 0x41a64374
mov dword [esp + 0xa0], 0x4db54f91
mov dword [esp + 0xa4], 0x49be4bb0
mov dword [esp + 0xa8], 0x55a757b9
mov dword [esp + 0xac], 0x51b653a1
mov dword [esp + 0xb0], 0x5da05f80
mov dword [esp + 0xb4], 0x59b05bad
mov dword [esp + 0xb8], 0x659267af
mov dword [esp + 0xbc], 0x619f638f
mov dword [esp + 0xc0], 0x6dbf6f84
mov dword [esp + 0xc4], 0x69966b97
mov dword [esp + 0xc8], 0x7587779c
mov dword [esp + 0xcc], 0x71877385
mov dword [esp + 0xd0], 0x7db97f94
mov dword [esp + 0xd4], 0x79437b41
mov dword [esp + 0xd8], 0x5cb0743
mov dword [esp + 0xdc], 0x1c803ce
mov dword [esp + 0xe0], 0xd320f30
mov dword [esp + 0xe4], 0x9370b33
mov dword [esp + 0xe8], 0x15291737
mov dword [esp + 0xec], 0x11fe132b
mov dword [esp + 0xf0], 0x1dd01f2d
mov dword [esp + 0xf4], 0x19221b24
mov dword [esp + 0xf8], 0x251627d7
mov dword [esp + 0xfc], 0x211d2314
mov dword [esp + 0x100], 0x2d122f10
mov dword [esp + 0x104], 0x29142be2
mov dword [esp + 0x108], 0x350c37e7
mov dword [esp + 0x10c], 0x310b330e
mov dword [esp + 0x110], 0x3dda3f0a
mov word [esp + 0x114], 0x3b3c
lea eax, [esp + 0x114]
mov byte [eax + 6], 0
mov dword [eax + 2], 0
mov eax, 0x9507925b
nop
nop
nop
movzx ecx, byte [esp + eax + 0x6af86e19]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x39
mov byte [esp + eax + 0x6af86e19], cl
inc eax
cmp eax, 0x95079302
jne 0x4247c0
lea edi, [esp + 0x876]
lea eax, [esp + 0x74]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x114]
lea edi, [esp + 0x916]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x239b217d
mov dword [esp + 0x78], 0x27942587
mov dword [esp + 0x7c], 0x3b893987
mov dword [esp + 0x80], 0x3f983d83
mov dword [esp + 0x84], 0x339e3184
mov dword [esp + 0x88], 0x3790356b
mov dword [esp + 0x8c], 0xbb309ae
mov dword [esp + 0x90], 0xfab0daf
mov dword [esp + 0x94], 0x37301ac
mov dword [esp + 0x98], 0x7780570
mov dword [esp + 0x9c], 0x1bb61968
mov dword [esp + 0xa0], 0x1fab1d43
mov dword [esp + 0xa4], 0x13ae11a4
mov dword [esp + 0xa8], 0x17a915ab
mov dword [esp + 0xac], 0x6bc669d3
mov dword [esp + 0xb0], 0x6fdc6d3c
mov dword [esp + 0xb4], 0x63c461df
mov dword [esp + 0xb8], 0x67da65dd
mov dword [esp + 0xbc], 0x7bc979dd
mov dword [esp + 0xc0], 0x7f217dd0
mov dword [esp + 0xc4], 0x73c671c5
mov dword [esp + 0xc8], 0x77c975c8
mov dword [esp + 0xcc], 0x4bf149f7
mov dword [esp + 0xd0], 0x4f074de0
mov dword [esp + 0xd4], 0x43354133
mov dword [esp + 0xd8], 0x47054531
mov dword [esp + 0xdc], 0x5b1c591e
mov dword [esp + 0xe0], 0x5f2a5d2c
mov dword [esp + 0xe4], 0x53215121
mov dword [esp + 0xe8], 0x57275525
mov dword [esp + 0xec], 0xab0ea9d9
mov dword [esp + 0xf0], 0xafecaddf
mov dword [esp + 0xf4], 0xa3eaa1e8
mov dword [esp + 0xf8], 0xa7d6a5e5
mov dword [esp + 0xfc], 0xbbcbb9c8
mov dword [esp + 0x100], 0xbfcabdcc
mov dword [esp + 0x104], 0xb3c0b1f2
mov dword [esp + 0x108], 0xb7c0b5f5
mov dword [esp + 0x10c], 0x8bfd89fe
mov dword [esp + 0x110], 0x8f228dfa
mov word [esp + 0x114], 0x8180
lea eax, [esp + 0x114]
mov byte [eax + 6], 0
mov dword [eax + 2], 0
xor eax, eax
movzx edx, byte [esp + eax + 0x74]
lea ecx, [eax + 0x2e651c08]
mov esi, 0x519ae3f7
sub esi, eax
mov edi, ecx
and edi, 0x211cde
and esi, 0x41802121
or esi, edi
xor esi, edx
xor esi, 0xde
mov edi, 0xf7
sub edi, eax
mov ebx, edi
and ebx, 0xc1
and ecx, 0x3e
or ecx, ebx
xor ecx, 0x3e
or ecx, edi
mov ebx, edi
and ebx, edx
or ebx, esi
and ecx, edx
not ebx
or ebx, ecx
add bl, 0xd8
mov byte [esp + eax + 0x74], bl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xa7
jb 0x4249e0
lea edx, [esp + 0xb42]
lea eax, [esp + 0x74]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x114]
lea edi, [esp + 0xbe2]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0xd1a5cf83
mov dword [esp + 0x78], 0xd5a0d3b5
mov dword [esp + 0x7c], 0xd9a3d7a5
mov dword [esp + 0x80], 0xddbcdba9
mov dword [esp + 0x84], 0xe182dfa8
mov dword [esp + 0x88], 0xe584e3b1
mov dword [esp + 0x8c], 0xe98de782
mov dword [esp + 0x90], 0xed8deb8d
mov dword [esp + 0x94], 0xf1ddefb0
mov dword [esp + 0x98], 0xf5dcf3c7
mov dword [esp + 0x9c], 0xf9aaf7c4
mov dword [esp + 0xa0], 0xfd8dfba9
mov dword [esp + 0xa4], 0x192ff88
mov dword [esp + 0xa8], 0x5730371
mov dword [esp + 0xac], 0x95a0769
mov dword [esp + 0xb0], 0xd780b58
mov dword [esp + 0xb4], 0x11680f7d
mov dword [esp + 0xb8], 0x157e137b
mov dword [esp + 0xbc], 0x19631773
mov dword [esp + 0xc0], 0x1d4b1b44
mov dword [esp + 0xc4], 0x216a1f6b
mov dword [esp + 0xc8], 0x2553234c
mov dword [esp + 0xcc], 0x294b2755
mov dword [esp + 0xd0], 0x2d112b74
mov dword [esp + 0xd4], 0x31172f19
mov dword [esp + 0xd8], 0x35773307
mov dword [esp + 0xdc], 0x39703772
mov dword [esp + 0xe0], 0x3d0e3b08
mov dword [esp + 0xe4], 0x410b3f0f
mov dword [esp + 0xe8], 0x45714373
mov dword [esp + 0xec], 0x49224777
mov dword [esp + 0xf0], 0x4d084b7d
mov dword [esp + 0xf4], 0x51764f74
mov dword [esp + 0xf8], 0x55625313
mov dword [esp + 0xfc], 0x59655764
mov dword [esp + 0x100], 0x5d6e5b68
mov dword [esp + 0x104], 0x616c5f1e
mov dword [esp + 0x108], 0x65546323
mov dword [esp + 0x10c], 0x695f6752
mov dword [esp + 0x110], 0x6d366b5e
mov word [esp + 0x114], 0x6f6c
lea eax, [esp + 0x114]
mov word [eax + 6], 0
mov dword [eax + 2], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xcd
xor cl, byte [esp + eax + 0x74]
dec cl
mov byte [esp + eax + 0x74], cl
add eax, 0x1820d69f
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
add eax, 0xe7df2961
cmp eax, 0xa8
jb 0x424c50
lea eax, [esp + 0xaa0]
lea esi, [esp + 0x74]
mov edi, eax
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x114]
lea edi, [esp + 0xb40]
mov ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0x918]
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x9ba]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x876]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x74], 0xc16dc773
mov dword [esp + 0x78], 0xcd50c36d
mov dword [esp + 0x7c], 0xc953cf5d
mov dword [esp + 0x80], 0xb564cb59
mov dword [esp + 0x84], 0xb112b728
mov dword [esp + 0x88], 0xbd19b309
mov dword [esp + 0x8c], 0xb912bf2a
mov dword [esp + 0x90], 0xa523bb29
mov dword [esp + 0x94], 0xa146a739
mov dword [esp + 0x98], 0xad0da317
mov dword [esp + 0x9c], 0xa933af31
mov dword [esp + 0xa0], 0x9503ab0b
mov dword [esp + 0xa4], 0x9100973f
mov dword [esp + 0xa8], 0x9d729339
mov dword [esp + 0xac], 0x99019f21
mov dword [esp + 0xb0], 0x85079b3a
mov dword [esp + 0xb4], 0x811b871f
mov dword [esp + 0xb8], 0x8d2d831c
mov dword [esp + 0xbc], 0x892a8f1b
mov dword [esp + 0xc0], 0x75188b38
mov dword [esp + 0xc4], 0x71d877e5
mov dword [esp + 0xc8], 0x7de673db
mov dword [esp + 0xcc], 0x79e37fd3
mov dword [esp + 0xd0], 0x65a17bdc
mov dword [esp + 0xd4], 0x61bf67b9
mov dword [esp + 0xd8], 0x6daf63bf
mov dword [esp + 0xdc], 0x69a06fa2
mov dword [esp + 0xe0], 0x55b66bb8
mov dword [esp + 0xe4], 0x518b5787
mov dword [esp + 0xe8], 0x5d815383
mov dword [esp + 0xec], 0x59f25f8f
mov dword [esp + 0xf0], 0x45985b85
mov dword [esp + 0xf4], 0x419e479c
mov dword [esp + 0xf8], 0x4d924383
mov dword [esp + 0xfc], 0x499d4f9c
mov dword [esp + 0x100], 0x35964b98
mov dword [esp + 0x104], 0x31e437f6
mov dword [esp + 0x108], 0x3dec33f3
mov dword [esp + 0x10c], 0x39e73fe2
mov dword [esp + 0x110], 0x259e3be6
mov dword [esp + 0x114], 0x2724
xor eax, eax
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x74]
lea esi, [eax + 0xb1]
and esi, edx
lea ecx, [eax - 0x214da14f]
or ecx, edx
xor ecx, esi
mov edx, ecx
and edx, 0x86800688
mov esi, ecx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, edx
or edx, 2
imul edx, esi
mov esi, ecx
xor esi, 0x8a
add esi, edi
add esi, edx
and ecx, 1
xor esi, 1
lea ecx, [esi + ecx*2]
mov byte [esp + eax + 0x74], cl
add eax, 0xf3887279
mov ecx, eax
and ecx, 0x188
xor eax, 0xc778d88
lea eax, [eax + ecx*2]
cmp eax, 0xa4
jb 0x424ea0
lea edi, [esp + 0x918]
lea eax, [esp + 0x74]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [esp + 0x114]
mov eax, edx
mov ecx, 1
lea edi, [esp + 0x9b8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x335b3165
mov dword [esp + 0x78], 0x3f4c3d5f
mov dword [esp + 0x7c], 0x3b49394f
mov dword [esp + 0x80], 0x47284533
mov dword [esp + 0x84], 0x4326413c
mov dword [esp + 0x88], 0x4f274d13
mov dword [esp + 0x8c], 0x4b26493e
mov dword [esp + 0x90], 0x57295523
mov dword [esp + 0x94], 0x53725123
mov dword [esp + 0x98], 0x5f025d0a
mov dword [esp + 0x9c], 0x5b19593c
mov dword [esp + 0xa0], 0x67146519
mov dword [esp + 0xa4], 0x630f6112
mov dword [esp + 0xa8], 0x6f126d1a
mov dword [esp + 0xac], 0x6b076936
mov dword [esp + 0xb0], 0x77057506
mov dword [esp + 0xb4], 0x73057119
mov dword [esp + 0xb8], 0x7f1a7d0a
mov dword [esp + 0xbc], 0x7b137927
mov dword [esp + 0xc0], 0x87ea85f2
mov dword [esp + 0xc4], 0x83fd81f7
mov dword [esp + 0xc8], 0x8fae8dff
mov dword [esp + 0xcc], 0x8be789dd
mov dword [esp + 0xd0], 0x97e595e7
mov dword [esp + 0xd4], 0x93fd91f1
mov dword [esp + 0xd8], 0x9fe89df5
mov dword [esp + 0xdc], 0x9bba99f7
mov dword [esp + 0xe0], 0xa7dba5f7
mov dword [esp + 0xe4], 0xa3d1a1c2
mov dword [esp + 0xe8], 0xafddadd5
mov dword [esp + 0xec], 0xabc7a9d4
mov dword [esp + 0xf0], 0xb7d2b5c1
mov dword [esp + 0xf4], 0xb3c0b1e0
mov dword [esp + 0xf8], 0xbfd0bdcb
mov dword [esp + 0xfc], 0xbbceb9d1
mov dword [esp + 0x100], 0xc7b5c5a9
mov dword [esp + 0x104], 0xc395c1a4
mov dword [esp + 0x108], 0xcfb2cdb1
mov dword [esp + 0x10c], 0xcbbdc9bc
mov dword [esp + 0x110], 0xd7bdd5a3
mov dword [esp + 0x114], 0xd3ebd1b4
mov dword [esp + 0x118], 0xdfe1ddef
mov dword [esp + 0x11c], 0xdb99d9e5
mov dword [esp + 0x120], 0xe7a8e5aa
mov dword [esp + 0x124], 0xe3dee1d0
mov dword [esp + 0x128], 0xefddeddd
mov dword [esp + 0x12c], 0xebdbe9d9
mov dword [esp + 0x130], 0xf79af5c5
mov dword [esp + 0x134], 0xf3b0f1c3
mov dword [esp + 0x138], 0xffc6fdc4
mov dword [esp + 0x13c], 0xfbcaf9b9
mov dword [esp + 0x140], 0x7370534
mov dword [esp + 0x144], 0x33e0130
mov dword [esp + 0x148], 0xf3c0d4e
mov dword [esp + 0x14c], 0xb340949
mov dword [esp + 0x150], 0x1729152a
mov dword [esp + 0x154], 0x1376112e
mov word [esp + 0x158], 0x1d1c
mov word [edx + 0x4a], 0
mov dword [edx + 0x46], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x74]
mov edx, eax
and edx, 0x68
mov esi, ecx
xor esi, 0x599b5534
add esi, edx
mov edx, esi
and edx, edi
mov ebx, edx
and ebx, 0xfffffffd
mov ebp, edx
and ebp, 2
or edx, 2
imul edx, ebp
xor ebp, 2
imul ebp, ebx
add edx, ebp
add esi, edi
mov edi, esi
not edi
and edi, edx
not edx
and edx, esi
sub edx, edi
add dl, 0xfc
mov byte [esp + ecx + 0x74], dl
inc ecx
add eax, 2
cmp ecx, 0xec
jne 0x4251c0
lea edi, [esp + 0x9ba]
lea eax, [esp + 0x74]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x158]
lea edi, [esp + 0xa9e]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x996d9b4f
mov dword [esp + 0x78], 0xa558a775
mov dword [esp + 0x7c], 0xa15fa355
mov dword [esp + 0x80], 0xad44af51
mov dword [esp + 0x84], 0xa94eab50
mov dword [esp + 0x88], 0xb55cb779
mov dword [esp + 0x8c], 0xb145b35e
mov dword [esp + 0x90], 0xbd55bf5d
mov dword [esp + 0x94], 0xb985bb58
mov dword [esp + 0x98], 0x45744785
mov dword [esp + 0x9c], 0x41a64374
mov dword [esp + 0xa0], 0x4db54f91
mov dword [esp + 0xa4], 0x49be4bb0
mov dword [esp + 0xa8], 0x55a757b9
mov dword [esp + 0xac], 0x51b653a1
mov dword [esp + 0xb0], 0x5da05f80
mov dword [esp + 0xb4], 0x59b05bad
mov dword [esp + 0xb8], 0x659267af
mov dword [esp + 0xbc], 0x619f638f
mov dword [esp + 0xc0], 0x6dbf6f84
mov dword [esp + 0xc4], 0x69966b97
mov dword [esp + 0xc8], 0x7587779c
mov dword [esp + 0xcc], 0x71877385
mov dword [esp + 0xd0], 0x7db97f94
mov dword [esp + 0xd4], 0x79437b41
mov dword [esp + 0xd8], 0x5cb0743
mov dword [esp + 0xdc], 0x1c803ce
mov dword [esp + 0xe0], 0xd320f30
mov dword [esp + 0xe4], 0x9370b33
mov dword [esp + 0xe8], 0x15291737
mov dword [esp + 0xec], 0x11fe132b
mov dword [esp + 0xf0], 0x1dd01f2d
mov dword [esp + 0xf4], 0x19221b24
mov dword [esp + 0xf8], 0x251627d7
mov dword [esp + 0xfc], 0x211d2314
mov dword [esp + 0x100], 0x2d122f10
mov dword [esp + 0x104], 0x29142be2
mov dword [esp + 0x108], 0x350c37e7
mov dword [esp + 0x10c], 0x310b330e
mov dword [esp + 0x110], 0x3dda3f0a
mov word [esp + 0x114], 0x3b3c
lea eax, [esp + 0x114]
mov byte [eax + 6], 0
mov dword [eax + 2], 0
mov eax, 0x9507925b
nop
nop
nop
movzx ecx, byte [esp + eax + 0x6af86e19]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x39
mov byte [esp + eax + 0x6af86e19], cl
inc eax
cmp eax, 0x95079302
jne 0x425410
lea edi, [esp + 0x876]
lea eax, [esp + 0x74]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x114]
mov ecx, 1
lea edi, [esp + 0x916]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x239b217d
mov dword [esp + 0x78], 0x27942587
mov dword [esp + 0x7c], 0x3b893987
mov dword [esp + 0x80], 0x3f983d83
mov dword [esp + 0x84], 0x339e3184
mov dword [esp + 0x88], 0x3790356b
mov dword [esp + 0x8c], 0xbb309ae
mov dword [esp + 0x90], 0xfab0daf
mov dword [esp + 0x94], 0x37301ac
mov dword [esp + 0x98], 0x7780570
mov dword [esp + 0x9c], 0x1bb61968
mov dword [esp + 0xa0], 0x1fab1d43
mov dword [esp + 0xa4], 0x13ae11a4
mov dword [esp + 0xa8], 0x17a915ab
mov dword [esp + 0xac], 0x6bc669d3
mov dword [esp + 0xb0], 0x6fdc6d3c
mov dword [esp + 0xb4], 0x63c461df
mov dword [esp + 0xb8], 0x67da65dd
mov dword [esp + 0xbc], 0x7bc979dd
mov dword [esp + 0xc0], 0x7f217dd0
mov dword [esp + 0xc4], 0x73c671c5
mov dword [esp + 0xc8], 0x77c975c8
mov dword [esp + 0xcc], 0x4bf149f7
mov dword [esp + 0xd0], 0x4f074de0
mov dword [esp + 0xd4], 0x43354133
mov dword [esp + 0xd8], 0x47054531
mov dword [esp + 0xdc], 0x5b1c591e
mov dword [esp + 0xe0], 0x5f2a5d2c
mov dword [esp + 0xe4], 0x53215121
mov dword [esp + 0xe8], 0x57275525
mov dword [esp + 0xec], 0xab0ea9d9
mov dword [esp + 0xf0], 0xafecaddf
mov dword [esp + 0xf4], 0xa3eaa1e8
mov dword [esp + 0xf8], 0xa7d6a5e5
mov dword [esp + 0xfc], 0xbbcbb9c8
mov dword [esp + 0x100], 0xbfcabdcc
mov dword [esp + 0x104], 0xb3c0b1f2
mov dword [esp + 0x108], 0xb7c0b5f5
mov dword [esp + 0x10c], 0x8bfd89fe
mov dword [esp + 0x110], 0x8f228dfa
mov word [esp + 0x114], 0x8180
lea eax, [esp + 0x114]
mov byte [eax + 6], 0
mov dword [eax + 2], 0
xor eax, eax
mov ebp, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x74]
lea ecx, [eax + 0x2e651c08]
mov esi, 0x519ae3f7
sub esi, eax
mov edi, ecx
and edi, 0x211cde
and esi, 0x41802121
or esi, edi
xor esi, edx
xor esi, 0xde
mov edi, 0xf7
sub edi, eax
mov ebx, edi
and ebx, 0xc1
and ecx, 0x3e
or ecx, ebx
xor ecx, 0x3e
or ecx, edi
mov ebx, edi
and ebx, edx
or ebx, esi
and ecx, edx
not ebx
or ebx, ecx
add bl, 0xd8
mov byte [esp + eax + 0x74], bl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xa7
jb 0x425640
lea edx, [esp + 0xb42]
lea eax, [esp + 0x74]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x114]
lea edi, [esp + 0xbe2]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0xd1a5cf83
mov dword [esp + 0x78], 0xd5a0d3b5
mov dword [esp + 0x7c], 0xd9a3d7a5
mov dword [esp + 0x80], 0xddbcdba9
mov dword [esp + 0x84], 0xe182dfa8
mov dword [esp + 0x88], 0xe584e3b1
mov dword [esp + 0x8c], 0xe98de782
mov dword [esp + 0x90], 0xed8deb8d
mov dword [esp + 0x94], 0xf1ddefb0
mov dword [esp + 0x98], 0xf5dcf3c7
mov dword [esp + 0x9c], 0xf9aaf7c4
mov dword [esp + 0xa0], 0xfd8dfba9
mov dword [esp + 0xa4], 0x192ff88
mov dword [esp + 0xa8], 0x5730371
mov dword [esp + 0xac], 0x95a0769
mov dword [esp + 0xb0], 0xd780b58
mov dword [esp + 0xb4], 0x11680f7d
mov dword [esp + 0xb8], 0x157e137b
mov dword [esp + 0xbc], 0x19631773
mov dword [esp + 0xc0], 0x1d4b1b44
mov dword [esp + 0xc4], 0x216a1f6b
mov dword [esp + 0xc8], 0x2553234c
mov dword [esp + 0xcc], 0x294b2755
mov dword [esp + 0xd0], 0x2d112b74
mov dword [esp + 0xd4], 0x31172f19
mov dword [esp + 0xd8], 0x35773307
mov dword [esp + 0xdc], 0x39703772
mov dword [esp + 0xe0], 0x3d0e3b08
mov dword [esp + 0xe4], 0x410b3f0f
mov dword [esp + 0xe8], 0x45714373
mov dword [esp + 0xec], 0x49224777
mov dword [esp + 0xf0], 0x4d084b7d
mov dword [esp + 0xf4], 0x51764f74
mov dword [esp + 0xf8], 0x55625313
mov dword [esp + 0xfc], 0x59655764
mov dword [esp + 0x100], 0x5d6e5b68
mov dword [esp + 0x104], 0x616c5f1e
mov dword [esp + 0x108], 0x65546323
mov dword [esp + 0x10c], 0x695f6752
mov dword [esp + 0x110], 0x6d366b5e
mov word [esp + 0x114], 0x6f6c
lea eax, [esp + 0x114]
mov word [eax + 6], 0
mov dword [eax + 2], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xcd
xor cl, byte [esp + eax + 0x74]
dec cl
mov byte [esp + eax + 0x74], cl
add eax, 0x1820d69f
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
add eax, 0xe7df2961
cmp eax, 0xa8
jb 0x4258b0
lea eax, [esp + 0xaa0]
lea esi, [esp + 0x74]
mov edi, eax
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x114]
mov ecx, 1
lea edi, [esp + 0xb40]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0x918]
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x9ba]
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x876]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
jmp dword [0x4477d4]
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x4477dc]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x74], 0x14151617
mov word [esp + 0x78], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x3c
xor dl, byte [esp + ecx + 0x74]
add dl, 0xd4
mov byte [esp + ecx + 0x74], dl
mov edx, ecx
not edx
or edx, 1
add edx, ecx
inc edx
mov esi, edx
and esi, 0xfffffffd
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
xor edi, 2
imul edi, esi
xor ecx, 1
add ecx, edx
add ecx, edi
cmp ecx, 6
jb 0x425970
mov ecx, dword [0x44d110]
test ecx, ecx
je 0x426120
mov edx, dword [esp + 0x74]
xor esi, esi
mov edi, dword [0x44d114]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x1b6183f2
je 0x42610c
inc esi
cmp ecx, esi
jne 0x4259d0
jmp 0x426120
mov ecx, dword [esp + 0x60]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x4477dc]
mov dword [esp + 0x60], ecx
mov eax, dword [esp + ecx + 0x4c]
mov dword [esp + 0x74], 0x7f2e7928
mov dword [esp + 0x78], 0x63327d2c
mov dword [esp + 0x7c], 0x67366130
mov dword [esp + 0x80], 0x6b126534
mov word [esp + 0x84], 0x6968
lea ecx, [esp + 0x114]
mov byte [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
xor ecx, ecx
jmp dword [0x4477e8]
inc ebx
xor eax, eax
cmp bx, 0x35
setb al
mov ecx, ebx
jmp dword [eax*4 + 0x4477f4]
mov word [edi - 2], cx
lea eax, [esp + 0x48]
mov ebx, ecx
lea ecx, [esp + 0xbe4]
push dword [esp + 0x2c]
push 0
push 0x20019
push eax
push ecx
call fcn.00440b30
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4477fc]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x68], 0x800
mov dword [esp + 0x28], 0x400
xor ebx, ebx
mov dword [esp + 0x1c], 0
jmp 0x425ad9
mov word [ebp], 0xa
add ebp, 2
mov al, 1
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 4]
inc ebx
lea eax, [esp + 0x28]
lea edi, [esp + 0xde4]
lea ecx, [esp + 0x64]
lea edx, [esp + 0x68]
push eax
push edi
push ecx
push edx
push esi
mov dword [esp + 0x18], ebx
push ebx
push dword [esp + 0x60]
call fcn.00441280
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x447804]
jmp dword [0x447810]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x447818]
test byte [esp + 0x1c], 1
sete al
mov edx, dword [esp + 0x64]
cmp edx, 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44781c]
mov eax, dword [case.0x425fc5.12]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x24], edx
mov dword [esp], ebp
mov dword [esp + 8], 0x21bb2767
mov dword [esp + 0xc], 0x5db323bd
mov dword [esp + 0x10], 0x59c85fd3
mov dword [esp + 0x14], 0x555a5bd4
lea eax, [esp + 0x18]
mov byte [eax + 2], 0
mov word [eax], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x39
xor al, byte [esp + ecx + 8]
add al, 0xe3
mov byte [esp + ecx + 8], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 0x13
jb 0x425ba0
movzx esi, word [esp + 8]
lea ebp, [esp + 0x74]
test si, si
je 0x425c0c
lea ecx, [esp + 0x74]
lea ebx, [esp + 8]
mov ebp, ecx
jmp 0x425be8
movzx esi, word [ebx]
test si, si
je 0x425c0c
movzx eax, word [ecx]
test ax, ax
je 0x425c0a
add ecx, 2
add ebx, 2
lea edx, [ebp + 2]
cmp ax, si
je 0x425c02
mov ebp, edx
mov ecx, edx
je 0x425be0
lea ebx, [esp + 8]
jmp 0x425be0
xor ebp, ebp
xor eax, eax
test ebp, ebp
setne al
mov ebp, dword [esp]
lea esi, [esp + 0x74]
mov edx, dword [esp + 0x24]
jmp dword [eax*4 + 0x447824]
jmp dword [0x447840]
nop
nop
nop
nop
nop
jmp dword [0x447844]
xor eax, eax
cmp edx, 3
sete al
mov ebx, dword [esp + 4]
jmp dword [eax*4 + 0x44784c]
jmp dword [0x447858]
mov ecx, dword [esp + 0x28]
cmp ecx, 2
jb 0x425cf7
shr ecx, 1
mov eax, ecx
and eax, 3
je 0x425c94
xor edx, edx
lea edi, [esp + 0xde4]
nop
movzx esi, word [edi]
xor ebx, ebx
test si, si
setne bl
lea edi, [edi + ebx*2]
mov word [ebp], si
add ebp, 2
inc edx
cmp eax, edx
jne 0x425c70
mov eax, ecx
sub eax, edx
lea esi, [esp + 0x74]
jmp 0x425c96
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x425cf7
nop
nop
nop
nop
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
lea esi, [edi + edx*2]
mov word [ebp], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [esi + edx*2]
mov word [ebp + 2], cx
movzx ecx, word [esi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea esi, [edi + edx*2]
mov word [ebp + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebp + 6], dx
add ebp, 8
lea edi, [esi + ecx*2]
add eax, 0xfffffffc
jne 0x425ca0
lea esi, [esp + 0x74]
mov word [ebp], 0x3a
mov word [ebp + 2], 0x20
add ebp, 4
mov al, 1
mov dword [esp + 0x1c], eax
jmp case.0x425fc5.28
mov dword [esp + 8], 0xe105e734
mov dword [esp + 0xc], 0xfd6fe36d
mov dword [esp + 0x10], 0xf90fff75
mov dword [esp + 0x14], 0xf506fb0a
mov dword [esp + 0x18], 0xf7f4
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x29
xor cl, byte [esp + eax + 8]
add cl, 0x33
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 0x14
jne 0x425d50
mov dword [esp + 8], 0xe105e734
mov dword [esp + 0xc], 0xfd6fe36d
mov dword [esp + 0x10], 0xf90fff75
mov dword [esp + 0x14], 0xf506fb0a
mov dword [esp + 0x18], 0xf7f4
xor eax, eax
mov ecx, eax
add cl, 0x29
xor cl, byte [esp + eax + 8]
add cl, 0x33
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 0x14
jne 0x425d90
movzx esi, word [esp + 8]
lea eax, [esp + 0x74]
test si, si
je 0x425df0
lea ecx, [esp + 0x74]
lea edx, [esp + 8]
mov eax, ecx
jmp 0x425dc8
movzx esi, word [edx]
test si, si
je 0x425df0
movzx edi, word [ecx]
test di, di
je 0x425e00
add ecx, 2
add edx, 2
lea ebx, [eax + 2]
cmp di, si
je 0x425de2
mov eax, ebx
mov ecx, ebx
je 0x425dc0
lea edx, [esp + 8]
jmp 0x425dc0
lea esi, [esp + 0x74]
jmp dword [0x44785c]
xor eax, eax
lea esi, [esp + 0x74]
jmp dword [0x44785c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447864]
mov edx, dword [esp + 0x28]
cmp edx, 2
jb 0x425ac5
shr edx, 1
mov ecx, edx
and ecx, 3
je 0x425e64
xor esi, esi
lea eax, [esp + 0xde4]
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [eax]
xor ebx, ebx
test di, di
setne bl
lea eax, [eax + ebx*2]
mov word [ebp], di
add ebp, 2
inc esi
cmp ecx, esi
jne 0x425e40
mov ecx, edx
sub ecx, esi
lea esi, [esp + 0x74]
jmp 0x425e6d
lea eax, [esp + 0xde4]
mov ecx, edx
dec edx
cmp edx, 3
jb 0x425ac5
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
xor ebx, ebx
test dx, dx
setne bl
lea esi, [eax + ebx*2]
mov word [ebp], dx
movzx eax, word [eax + ebx*2]
xor edx, edx
test ax, ax
setne dl
lea edi, [esi + edx*2]
mov word [ebp + 2], ax
movzx eax, word [esi + edx*2]
xor edx, edx
test ax, ax
setne dl
lea esi, [edi + edx*2]
mov word [ebp + 4], ax
movzx edx, word [edi + edx*2]
xor eax, eax
test dx, dx
setne al
mov word [ebp + 6], dx
add ebp, 8
lea eax, [esi + eax*2]
add ecx, 0xfffffffc
jne 0x425e80
lea esi, [esp + 0x74]
jmp 0x425ac5
mov eax, dword [esp + 0x48]
mov dword [esp + 8], 0x14151617
mov word [esp + 0xc], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x3c
xor dl, byte [esp + ecx + 8]
add dl, 0xd4
mov byte [esp + ecx + 8], dl
mov edx, ecx
not edx
or edx, 1
add edx, ecx
inc edx
mov esi, edx
and esi, 0xfffffffd
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
xor edi, 2
imul edi, esi
xor ecx, 1
add ecx, edx
add ecx, edi
cmp ecx, 6
jb 0x425f00
mov ecx, dword [0x44d110]
test ecx, ecx
je 0x425f80
mov edx, dword [esp + 8]
xor esi, esi
mov edi, dword [0x44d114]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x1b6183f2
je 0x425f70
inc esi
cmp ecx, esi
jne 0x425f60
jmp 0x425f80
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne case.default.0x425f96
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x40]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
lea esi, [esp + 0x74]
mov edi, dword [esp + 0x3c]
jmp dword [eax*4 + 0x4477f4]
push eax
push 4
push ecx
push dword [0x44d118]
call fcn.0043dd00
add esp, 0x10
mov ecx, dword [esp + 0x40]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
lea esi, [esp + 0x74]
mov edi, dword [esp + 0x3c]
jmp dword [eax*4 + 0x4477f4]
xor ecx, ecx
movzx esi, byte [esp + ecx + 0x74]
lea edx, [ecx + 0xea]
or edx, esi
not esi
mov edi, 0x15
sub edi, ecx
or edi, esi
and edx, edi
add dl, 0x6e
mov byte [esp + ecx + 0x74], dl
inc ecx
cmp ecx, 0x17
jne 0x425fd2
movzx ecx, word [eax]
lea edi, [esp + 0xbe4]
test cx, cx
je 0x426021
lea edx, [eax + 2]
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x426010
mov word [edi], 0
movzx ecx, word [esp + 0x74]
test cx, cx
je 0x426051
lea edx, [esp + 0x76]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x426040
mov word [edi], 0
xor ecx, ecx
jmp dword [0x4477f0]
movzx esi, byte [esp + ecx + 0x74]
lea edx, [ecx + 0xea]
or edx, esi
not esi
mov edi, 0x15
sub edi, ecx
or edi, esi
and edx, edi
add dl, 0x6e
mov byte [esp + ecx + 0x74], dl
inc ecx
cmp ecx, 0x17
jne case.0x423f14.21
movzx edx, word [eax]
lea ecx, [esp + 0xbe4]
test dx, dx
je 0x4260b1
lea esi, [eax + 2]
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x4260a0
mov word [ecx], 0
movzx edx, word [esp + 0x74]
test dx, dx
je 0x4260e1
lea esi, [esp + 0x76]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x4260d0
mov word [ecx], 0
jmp case.0x423f14.22
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
lea esi, [esp + 0x74]
mov dword [esp + 0x3c], edi
jmp dword [eax*4 + 0x4477f4]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x426148
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
jmp dword [0x44786c]
push esi
call fcn.00409870
add esp, 4
inc edi
xor eax, eax
cmp edi, dword [esp + 0x30]
setb al
jmp dword [eax*4 + 0x44779c]
push eax
push 4
push ecx
push dword [0x44d118]
call fcn.0043dd00
add esp, 0x10
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
jmp dword [0x44786c]
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x4261ab
cmp cx, 0x7f
jbe 0x426170
movzx edx, cx
cmp edx, 0x7ff
ja 0x4261a0
add edi, 2
jmp 0x426171
cmp cx, 0xffff
je 0x426171
add edi, 3
jmp 0x426171
lea eax, [edi + 1]
push eax
call fcn.00409860
add esp, 4
mov esi, eax
mov dword [esp], eax
test bx, bx
je 0x42631f
mov esi, dword [esp]
test edi, edi
je 0x42631f
lea edx, [esp + 0x11e4]
mov ecx, edi
mov esi, dword [esp]
mov dword [esp + 0x24], edi
movzx ebx, bx
lea ebp, [edx + 2]
cmp bx, 0x7f
ja 0x426200
mov byte [esi], bl
lea eax, [esi + 1]
jmp 0x4262c0
cmp ebx, 0x7ff
ja 0x426230
cmp ecx, 2
jb 0x426230
mov eax, ebx
shr eax, 6
add al, 0xc0
mov byte [esi], al
and bl, 0x3f
or bl, 0x80
lea eax, [esi + 2]
mov byte [esi + 1], bl
jmp 0x4262c0
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4262da
cmp ecx, 4
jb 0x4262da
movzx eax, word [edx + 2]
mov dword [esp + 4], eax
add edx, 4
shl ebx, 0xa
add ebx, 0xfca00000
lea ebp, [eax - 0xdc00]
mov edi, ebp
and edi, ebx
xor ebp, ebx
lea eax, [edi*2]
add eax, ebp
mov dword [esp + 0x1c], eax
lea eax, [edi*2 + 0x10000]
add eax, ebp
mov edi, dword [esp + 0x24]
mov ebx, eax
shr ebx, 0x12
add bl, 0xf0
mov byte [esi], bl
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
mov eax, dword [esp + 0x1c]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
mov bl, 0x3f
sub bl, byte [esp + 4]
and bl, 0x3f
xor bl, 0xbf
lea eax, [esi + 4]
mov byte [esi + 3], bl
mov ebp, edx
nop
nop
nop
nop
nop
add ecx, esi
sub ecx, eax
mov edx, ebp
mov esi, eax
movzx ebx, word [edx]
test bx, bx
je 0x42631f
test ecx, ecx
jne 0x4261e0
jmp 0x42631f
movzx eax, ax
cmp eax, 0xdc00
jne 0x4262e8
mov edx, ebp
jmp 0x4262c8
cmp ecx, 3
jb 0x42631b
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [esi], al
mov eax, ebx
shr eax, 6
mov edx, eax
xor edx, 0xc0
or eax, 0x3f
and eax, edx
add al, 0x80
mov byte [esi + 1], al
and bl, 0x3f
or bl, 0x80
mov byte [esi + 2], bl
lea eax, [esi + 3]
jmp 0x4262c0
mov eax, esi
jmp 0x4262c0
mov byte [esi], 0
mov dword [esp + 0x74], 0x535e5989
mov dword [esp + 0x78], 0x57a3aa55
mov dword [esp + 0x7c], 0x50545259
mov dword [esp + 0x80], 0x6f6fb697
mov dword [esp + 0x84], 0x606d6a64
mov dword [esp + 0x88], 0x60648daf
mov dword [esp + 0x8c], 0x926a686a
mov dword [esp + 0x90], 0x637ea763
mov word [esp + 0x94], 0xe97c
mov dword [esp + 0x96], 0
mov word [esp + 0x9a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xd2
xor cl, byte [esp + eax + 0x74]
add cl, 0xe6
mov byte [esp + eax + 0x74], cl
inc eax
cmp eax, 0x28
jne 0x4263a0
lea eax, [esp + 0x74]
mov ecx, dword [esp + 0x21f8]
push edi
mov esi, dword [esp + 4]
push esi
push eax
call fcn.0040a690
mov ecx, eax
jmp dword [0x447874]
push esi
mov esi, ecx
call fcn.00409870
mov ecx, esi
add esp, 4
and cl, 1
mov eax, dword [case.0x423f14.0]
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, ecx
add esp, 0x21e4
pop esi
pop edi
pop ebx
pop ebp
ret