Function at 0x427307
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x1dec
call fcn.004089a0
push eax
mov dword [ebp - 0x50], esp
push eax
mov dword [ebp - 0x20], esp
sub esp, 0x400
mov dword [ebp - 0x24], esp
push eax
mov dword [ebp - 0x2c], esp
sub esp, 0x10
mov dword [ebp - 0x30], esp
sub esp, 0x18
mov dword [ebp - 0x10], esp
sub esp, 0x28
mov dword [ebp - 0x58], esp
mov dword [ebp - 0x1df8], 0x1540760
mov dword [ebp - 0x1df4], 0xd4b034f
mov dword [ebp - 0x1df0], 0x9530f47
mov dword [ebp - 0x1dec], 0x15580b54
mov dword [ebp - 0x1de8], 0x1172174f
mov dword [ebp - 0x1de4], 0x1d4f134f
mov dword [ebp - 0x1de0], 0x194c1f53
mov word [ebp - 0x1ddc], 0x1b18
mov dword [ebp - 0x1dda], 0
mov word [ebp - 0x1dd6], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
movzx edx, byte [ebp + ecx - 0x1df8]
mov esi, eax
and esi, 2
mov edi, ecx
xor edi, 0x78edca01
add edi, esi
xor edi, edx
mov edx, edi
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
add dl, 0xfa
mov byte [ebp + ecx - 0x1df8], dl
inc ecx
add eax, 2
cmp ecx, 0x24
jne case.default.0x425fb6
lea eax, [ebp - 0x48]
lea esi, [ebp - 0x1df8]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.00441290
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x4485e0]
xor ebx, ebx
jmp 0x427768
mov dword [ebp - 0x14], esi
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x4c], 0
cmp ecx, dword [ebp - 0x54]
setb al
xor esi, esi
jmp dword [eax*4 + 0x4485f0]
mov dword [ebp - 0x888], 0xc36bc10d
mov dword [ebp - 0x884], 0xc754c567
mov dword [ebp - 0x880], 0xcb59c967
mov dword [ebp - 0x87c], 0xcf68cd63
mov dword [ebp - 0x878], 0xb30eb124
mov dword [ebp - 0x874], 0xb71fb503
mov dword [ebp - 0x870], 0xbb1eb916
mov dword [ebp - 0x86c], 0xbf29bd13
mov dword [ebp - 0x868], 0xa342a133
mov dword [ebp - 0x864], 0xa703a569
mov dword [ebp - 0x860], 0xab39a93b
mov dword [ebp - 0x85c], 0xaf09ad0d
mov dword [ebp - 0x858], 0x933c9139
mov dword [ebp - 0x854], 0x97769533
mov dword [ebp - 0x850], 0x9b0f992b
mov dword [ebp - 0x84c], 0x9f0d9d3e
mov dword [ebp - 0x848], 0x83118119
mov dword [ebp - 0x844], 0x87238510
mov dword [ebp - 0x840], 0x8b368925
mov dword [ebp - 0x83c], 0x8f1c8d3c
mov dword [ebp - 0x838], 0x73d471df
mov dword [ebp - 0x834], 0x77da75dd
mov dword [ebp - 0x830], 0x7be979dd
mov dword [ebp - 0x82c], 0x7fa77dc0
mov dword [ebp - 0x828], 0x63b561b3
mov dword [ebp - 0x824], 0x67a565b1
mov dword [ebp - 0x820], 0x6bac69ae
mov dword [ebp - 0x81c], 0x6fba6dbc
mov dword [ebp - 0x818], 0x53815181
mov dword [ebp - 0x814], 0x57875585
mov dword [ebp - 0x810], 0x5bfe5989
mov dword [ebp - 0x80c], 0x5f9c5d8f
mov dword [ebp - 0x808], 0x439a4198
mov dword [ebp - 0x804], 0x47964585
mov dword [ebp - 0x800], 0x4b9b4998
mov dword [ebp - 0x7fc], 0x4f9a4d9c
mov dword [ebp - 0x7f8], 0x33e031f2
mov dword [ebp - 0x7f4], 0x37e035f5
mov dword [ebp - 0x7f0], 0x3bed39ee
mov dword [ebp - 0x7ec], 0x3f823dea
mov word [ebp - 0x7e8], 0x2120
lea eax, [ebp - 0x7e8]
mov byte [eax + 4], 0
mov word [eax + 2], 0
xor eax, eax
nop
nop
nop
nop
nop
movzx edx, byte [ebp + eax - 0x888]
lea ecx, [eax + eax]
mov edi, ecx
and edi, 0x160
mov ebx, eax
xor ebx, 0xb7f80bb0
add ebx, edi
xor ebx, edx
add ebx, 0x6827c58f
mov edx, ebx
and edx, 1
xor ebx, 1
lea edx, [ebx + edx*2]
mov byte [ebp + eax - 0x888], dl
mov edx, eax
xor edx, 0x7ffffffe
mov edi, eax
or edi, 1
and edi, edx
and ecx, 2
sub eax, ecx
lea eax, [eax + edi*2]
inc eax
cmp eax, 0xa5
jb 0x4261c0
lea edi, [ebp - 0x9cc]
lea eax, [ebp - 0x888]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x7e8]
lea edi, [ebp - 0x92c]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x888], 0x3f9739f5
mov dword [ebp - 0x884], 0x23b43d9b
mov dword [ebp - 0x880], 0x27b121b3
mov dword [ebp - 0x87c], 0x2b8025b7
mov dword [ebp - 0x878], 0x2f9229bc
mov dword [ebp - 0x874], 0x13bb2d97
mov dword [ebp - 0x870], 0x17b21182
mov dword [ebp - 0x86c], 0x1b811587
mov dword [ebp - 0x868], 0x1ffe198f
mov dword [ebp - 0x864], 0x3b61dae
mov dword [ebp - 0x860], 0x7c101bc
mov dword [ebp - 0x85c], 0xb9c0591
mov dword [ebp - 0x858], 0xfab099e
mov dword [ebp - 0x854], 0xf3660d9e
mov dword [ebp - 0x850], 0xf753f14a
mov dword [ebp - 0x84c], 0xfb6df562
mov dword [ebp - 0x848], 0xff6df951
mov dword [ebp - 0x844], 0xe35efd6e
mov dword [ebp - 0x840], 0xe74fe15b
mov dword [ebp - 0x83c], 0xeb4ee576
mov dword [ebp - 0x838], 0xef75e97b
mov dword [ebp - 0x834], 0xd332ed7b
mov dword [ebp - 0x830], 0xd773d11d
mov dword [ebp - 0x82c], 0xdb4dd543
mov dword [ebp - 0x828], 0xdf75d979
mov dword [ebp - 0x824], 0xc350dd75
mov dword [ebp - 0x820], 0xc726c16b
mov dword [ebp - 0x81c], 0xcb5fc573
mov dword [ebp - 0x818], 0xcf59c96e
mov dword [ebp - 0x814], 0xb325cd55
mov dword [ebp - 0x810], 0xb713b124
mov dword [ebp - 0x80c], 0xbb06b519
mov dword [ebp - 0x808], 0xbf28b908
mov dword [ebp - 0x804], 0xa308bd2f
mov dword [ebp - 0x800], 0xa70aa109
mov dword [ebp - 0x7fc], 0xab3da501
mov dword [ebp - 0x7f8], 0xaf1da914
mov dword [ebp - 0x7f4], 0x9306ad39
mov dword [ebp - 0x7f0], 0x9705913c
mov dword [ebp - 0x7ec], 0x9b359507
mov dword [ebp - 0x7e8], 0x9f479924
mov dword [ebp - 0x7e4], 0x83599d4b
mov dword [ebp - 0x7e0], 0x87418155
mov dword [ebp - 0x7dc], 0x8b40854e
mov dword [ebp - 0x7d8], 0x8f5a8958
mov dword [ebp - 0x7d4], 0x73a58d5d
mov dword [ebp - 0x7d0], 0x77a771a1
mov dword [ebp - 0x7cc], 0x7bde75a5
mov dword [ebp - 0x7c8], 0x7fb879af
mov dword [ebp - 0x7c4], 0x63ba7da4
mov dword [ebp - 0x7c0], 0x67b661a1
mov dword [ebp - 0x7bc], 0x6bbb65b4
mov dword [ebp - 0x7b8], 0x6fba69b8
mov dword [ebp - 0x7b4], 0x53846daa
mov dword [ebp - 0x7b0], 0x578c5191
mov dword [ebp - 0x7ac], 0x5b81558e
mov dword [ebp - 0x7a8], 0x5fe25982
mov word [ebp - 0x7a4], 0x5d5c
mov dword [ebp - 0x7a2], 0
mov eax, 0x2a7358ba
mov ecx, 0xd58ca745
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ebp + eax - 0x2a736142]
mov ebx, ecx
and ebx, 0xd1080270
mov edx, eax
and edx, 0x2a60098f
sub edx, ebx
xor edx, edi
mov edi, edx
xor edi, 0x73
and edx, 0xc
add edx, edx
sub edx, edi
inc dl
mov byte [ebp + eax - 0x2a736142], dl
inc eax
dec ecx
cmp eax, 0x2a7359a4
jne 0x4264a0
lea edi, [ebp - 0xab2]
lea eax, [ebp - 0x888]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x7a4]
lea edi, [ebp - 0x9ce]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x888], 0x335b3165
mov dword [ebp - 0x884], 0x3f4c3d5f
mov dword [ebp - 0x880], 0x3b49394f
mov dword [ebp - 0x87c], 0x47284533
mov dword [ebp - 0x878], 0x4326413c
mov dword [ebp - 0x874], 0x4f204d1b
mov dword [ebp - 0x870], 0x4b234926
mov dword [ebp - 0x86c], 0x573b5537
mov dword [ebp - 0x868], 0x53635134
mov dword [ebp - 0x864], 0x5f685d6f
mov dword [ebp - 0x860], 0x5b3e5968
mov dword [ebp - 0x85c], 0x671b6533
mov dword [ebp - 0x858], 0x6316611c
mov dword [ebp - 0x854], 0x6f196d1b
mov dword [ebp - 0x850], 0x6b0e6903
mov dword [ebp - 0x84c], 0x77047524
mov dword [ebp - 0x848], 0x731c7107
mov dword [ebp - 0x844], 0x7f0a7d15
mov dword [ebp - 0x840], 0x7b097915
mov dword [ebp - 0x83c], 0x87d185e0
mov dword [ebp - 0x838], 0x83fe81fd
mov dword [ebp - 0x834], 0x8ff98df8
mov dword [ebp - 0x830], 0x8be189ff
mov dword [ebp - 0x82c], 0x97af95f0
mov dword [ebp - 0x828], 0x93ad91a3
mov dword [ebp - 0x824], 0x9fdd9da1
mov dword [ebp - 0x820], 0x9bd499d6
mov dword [ebp - 0x81c], 0xa79aa594
mov dword [ebp - 0x818], 0xa391a191
mov dword [ebp - 0x814], 0xaf9fad9d
mov dword [ebp - 0x810], 0xabc6a999
mov dword [ebp - 0x80c], 0xb7f4b587
mov dword [ebp - 0x808], 0xb38ab188
mov dword [ebp - 0x804], 0xbf8ebdfd
mov dword [ebp - 0x800], 0xbb8bb988
mov dword [ebp - 0x7fc], 0xc7fac5f4
mov dword [ebp - 0x7f8], 0xc3f0c182
mov dword [ebp - 0x7f4], 0xcff0cd8d
mov dword [ebp - 0x7f0], 0xcbf5c9f6
mov dword [ebp - 0x7ec], 0xd7b2d5ea
mov word [ebp - 0x7e8], 0xd1d0
lea eax, [ebp - 0x7e8]
mov byte [eax + 4], 0
mov word [eax + 2], 0
xor eax, eax
mov ecx, eax
add cl, 0x34
xor cl, byte [ebp + eax - 0x888]
add cl, 0xfc
mov byte [ebp + eax - 0x888], cl
inc eax
cmp eax, 0xa5
jne 0x4266b0
lea edi, [ebp - 0x92a]
lea eax, [ebp - 0x888]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x7e8]
lea edi, [ebp - 0x88a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x888], 0x832b814d
mov dword [ebp - 0x884], 0x87348527
mov dword [ebp - 0x880], 0x8b398927
mov dword [ebp - 0x87c], 0x8f288d23
mov dword [ebp - 0x878], 0x934e9124
mov dword [ebp - 0x874], 0x9730955b
mov dword [ebp - 0x870], 0x9b33993e
mov dword [ebp - 0x86c], 0x9f3b9d3f
mov dword [ebp - 0x868], 0x639361bc
mov dword [ebp - 0x864], 0x67886590
mov dword [ebp - 0x860], 0x6bb66998
mov dword [ebp - 0x85c], 0x6fdb6da3
mov dword [ebp - 0x858], 0x73de71c4
mov dword [ebp - 0x854], 0x77d975db
mov dword [ebp - 0x850], 0x7ba679d3
mov dword [ebp - 0x84c], 0x7fcc7dac
mov dword [ebp - 0x848], 0x43e441ef
mov dword [ebp - 0x844], 0x47ea45ed
mov dword [ebp - 0x840], 0x4bf949ed
mov dword [ebp - 0x83c], 0x4f814d90
mov dword [ebp - 0x838], 0x53e651e5
mov dword [ebp - 0x834], 0x57f955f8
mov dword [ebp - 0x830], 0x5bf159f7
mov dword [ebp - 0x82c], 0x5fa75d80
mov dword [ebp - 0x828], 0x23d521d3
mov dword [ebp - 0x824], 0x27e525d1
mov dword [ebp - 0x820], 0x2bec29ee
mov dword [ebp - 0x81c], 0x2fda2ddc
mov dword [ebp - 0x818], 0x33c131c1
mov dword [ebp - 0x814], 0x37c735c5
mov dword [ebp - 0x810], 0x3b9e39c9
mov dword [ebp - 0x80c], 0x3ffc3dcf
mov dword [ebp - 0x808], 0x3fa01f8
mov dword [ebp - 0x804], 0x7f605c5
mov dword [ebp - 0x800], 0xbfb09f8
mov dword [ebp - 0x7fc], 0xffa0dfc
mov dword [ebp - 0x7f8], 0x13e011d2
mov dword [ebp - 0x7f4], 0x17e015d5
mov dword [ebp - 0x7f0], 0x1bed19ee
mov dword [ebp - 0x7ec], 0x1fc21dea
mov word [ebp - 0x7e8], 0xe1e0
lea eax, [ebp - 0x7e8]
mov byte [eax + 6], 0
mov dword [eax + 2], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebp + eax - 0x888]
lea edi, [eax - 0x1cc93e20]
lea edx, [eax + 0xe0]
and edx, edi
and edx, ecx
mov ebx, edx
and ebx, 0xfffffffd
mov edi, edx
or edi, 0xfd
inc edi
imul edi, ebx
mov ebx, edx
and ebx, 2
or edx, 2
imul edx, ebx
sub edi, edx
lea edx, [edi + eax]
add edx, 0xe336c1e0
add dl, cl
add dl, 0xa0
mov byte [ebp + eax - 0x888], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xa7
jb 0x4268b0
lea edi, [ebp - 0xbf6]
lea eax, [ebp - 0x888]
mov ebx, eax
mov esi, edi
mov ecx, 0x28
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea ebx, [ebp - 0x7e8]
lea edi, [ebp - 0xb56]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [ebp - 0x888], 0xc95dcb7f
mov dword [ebp - 0x884], 0xc548c755
mov dword [ebp - 0x880], 0xc14fc355
mov dword [ebp - 0x87c], 0xbd24bf51
mov dword [ebp - 0x878], 0xb91ebb30
mov dword [ebp - 0x874], 0xb52cb709
mov dword [ebp - 0x870], 0xb125b32e
mov dword [ebp - 0x86c], 0xad35af2d
mov dword [ebp - 0x868], 0xa965ab08
mov dword [ebp - 0x864], 0xa574a763
mov dword [ebp - 0x860], 0xa106a374
mov dword [ebp - 0x85c], 0x9d159f11
mov dword [ebp - 0x858], 0x990e9b10
mov dword [ebp - 0x854], 0x95079709
mov dword [ebp - 0x850], 0x91369301
mov dword [ebp - 0x84c], 0x8d008f20
mov dword [ebp - 0x848], 0x89108b1d
mov dword [ebp - 0x844], 0x8512871f
mov dword [ebp - 0x840], 0x810f831f
mov dword [ebp - 0x83c], 0x7dcf7f24
mov dword [ebp - 0x838], 0x79f67bf7
mov dword [ebp - 0x834], 0x75e777ec
mov dword [ebp - 0x830], 0x71e773e5
mov dword [ebp - 0x82c], 0x6da96fd4
mov dword [ebp - 0x828], 0x69a36ba1
mov dword [ebp - 0x824], 0x65db67a3
mov dword [ebp - 0x820], 0x61d863de
mov dword [ebp - 0x81c], 0x5d925fb0
mov dword [ebp - 0x818], 0x59975b93
mov dword [ebp - 0x814], 0x55995797
mov dword [ebp - 0x810], 0x51ce539b
mov dword [ebp - 0x80c], 0x4df04f9d
mov dword [ebp - 0x808], 0x49824b84
mov dword [ebp - 0x804], 0x459647f7
mov dword [ebp - 0x800], 0x418d4394
mov dword [ebp - 0x7fc], 0x3df23f90
mov dword [ebp - 0x7f8], 0x39f43b82
mov dword [ebp - 0x7f4], 0x35fc3787
mov dword [ebp - 0x7f0], 0x31fb33fe
mov dword [ebp - 0x7ec], 0x2d8a2ffa
mov dword [ebp - 0x7e8], 0x2b2c
mov ecx, 0x5ffd304c
nop
movzx edi, byte [eax]
mov ebx, ecx
or ebx, edi
lea edx, [ecx - 0x5ffd3000]
and edx, edi
xor edx, ebx
lea edi, [edx + edx]
not edi
add edi, edx
mov edx, edi
and edx, 8
xor edi, 0x88
lea edx, [edi + edx*2]
add dl, 0xf9
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x5ffd2fa8
jne 0x426ae0
lea eax, [ebp - 0xb54]
lea edx, [ebp - 0x888]
mov edi, eax
mov ecx, 0x28
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [ebp - 0x7e8]
mov ecx, 1
lea edi, [ebp - 0xab4]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
lea ecx, [ebp - 0x9cc]
mov dword [ebp - 0x88], ecx
lea ecx, [ebp - 0xab2]
mov dword [ebp - 0x84], ecx
lea ecx, [ebp - 0x92a]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], eax
xor edi, edi
xor eax, eax
cmp edi, 0x14
setne al
jmp dword [eax*4 + 0x448610]
mov ecx, dword [ebp - 0x6c]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
mov edx, dword [ebp - 0x68]
jmp dword [eax*4 + 0x448628]
mov dword [ebp - 0x6c], ecx
mov word [edx - 2], cx
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0xdf6]
push dword [ebp - 0x44]
push 0
push 0x20019
push eax
push ecx
call fcn.00441290
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448650]
mov eax, dword [ebp - 0x50]
mov dword [eax], 0x800
mov eax, dword [ebp - 0x2c]
mov dword [eax], 0x400
xor ecx, ecx
mov dword [ebp - 0x28], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x10]
jmp 0x426bfc
mov ecx, dword [ebp - 0x18]
inc ecx
push dword [ebp - 0x2c]
push dword [ebp - 0x24]
push esi
push dword [ebp - 0x50]
lea eax, [ebp - 0x888]
push eax
mov dword [ebp - 0x18], ecx
push ecx
push dword [ebp - 0x40]
call fcn.00441970
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448658]
test byte [ebp - 0x28], 1
sete al
mov edx, dword [esi]
cmp edx, 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x448660]
xor eax, eax
cmp edx, 3
sete al
jmp dword [eax*4 + 0x448670]
mov dword [ebp - 0x3c], edx
mov esi, dword [ebp - 0x30]
mov dword [esi], 0x21bb2767
mov dword [esi + 4], 0x5db323bd
mov dword [esi + 8], 0x59c85fd3
mov dword [esi + 0xc], 0x555a5bd4
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + ecx]
mov esi, ecx
xor esi, 0x2905371c
lea edi, [ecx + ecx]
mov dword [ebp - 0x1c], edi
and edi, 6
sub edi, esi
mov esi, 0x2a
sub esi, edi
lea ebx, [edi*2 - 0x60c256]
neg ebx
add ebx, edi
add ebx, 0xd4
and ebx, esi
not ebx
and ebx, edx
mov esi, edx
not esi
lea eax, [edi + 0x7fcf9ed5]
and esi, eax
xor eax, edx
add eax, edi
add eax, 0x7fcf9ed5
not eax
add eax, esi
mov esi, dword [ebp - 0x30]
or eax, ebx
mov edx, 0x4e0bf961
sub edx, eax
mov eax, edx
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
mov byte [esi + ecx], al
mov edx, ecx
xor edx, 0xfffffffe
mov eax, ecx
or eax, 1
and eax, edx
mov edi, eax
and edi, 0xd
mov edx, eax
and edx, 2
or eax, 2
imul eax, edx
xor edx, 2
imul edx, edi
mov edi, dword [ebp - 0x1c]
and edi, 2
sub ecx, edi
add ecx, eax
add ecx, edx
inc ecx
cmp ecx, 0x10
jb 0x426c90
movzx eax, word [esi]
lea ecx, [ebp - 0x888]
test ax, ax
je 0x426d76
lea edx, [ebp - 0x888]
mov edi, esi
mov ecx, edx
jmp 0x426d5f
add ecx, 2
mov edx, ecx
mov edi, esi
movzx eax, word [edi]
test ax, ax
je 0x426d76
movzx ebx, word [edx]
test bx, bx
je 0x426d74
cmp bx, ax
jne 0x426d50
add edx, 2
add edi, 2
jmp 0x426d57
xor ecx, ecx
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x448668]
xor eax, eax
cmp dword [ebp - 0x3c], 3
sete al
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x10]
jmp dword [eax*4 + 0x448670]
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
cmp edi, 2
jae 0x426fd0
mov esi, dword [ebp - 0x14]
jmp 0x427072
shr edi, 1
lea eax, [edi - 1]
mov ebx, edi
and ebx, 3
je 0x42708c
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
xor edx, edx
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x14]
nop
nop
mov edi, ebx
movzx ebx, word [ecx]
xor eax, eax
test bx, bx
setne al
lea ecx, [ecx + eax*2]
mov word [esi], bx
mov ebx, edi
add esi, 2
inc edx
cmp edi, edx
jne 0x426ff0
mov edi, dword [ebp - 0x28]
sub edi, edx
mov eax, dword [ebp - 0x1c]
cmp eax, 3
jb 0x427072
nop
nop
nop
nop
nop
nop
movzx eax, word [ecx]
xor edx, edx
test ax, ax
setne dl
mov word [esi], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [esi + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [esi + 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 [esi + 6], dx
add esi, 8
add edi, 0xfffffffc
jne 0x427020
mov dword [esi], 0x20003a
add esi, 4
mov dword [ebp - 0x14], esi
mov al, 1
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x18]
inc ecx
jmp 0x426bf0
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x14]
cmp eax, 3
jae 0x427020
jmp 0x427072
jmp dword [0x448694]
mov eax, dword [ebp + edi - 0x88]
mov dword [ebp - 0x888], 0x11ce1fcc
mov dword [ebp - 0x884], 0x15c213c0
mov dword [ebp - 0x880], 0x9c617c4
mov dword [ebp - 0x87c], 0xde20bd8
mov word [ebp - 0x878], 0xf0c
mov dword [ebp - 0x876], 0
mov ecx, 0xc5
mov edx, 2
nop
nop
nop
nop
mov esi, edx
and esi, 4
mov ebx, ecx
and ebx, 0xbb
or ebx, esi
xor bl, byte [ebp + ecx - 0x94d]
xor bl, 0x44
add bl, 0x27
mov byte [ebp + ecx - 0x94d], bl
inc ecx
dec edx
cmp ecx, 0xdb
jne 0x427240
movzx ecx, word [eax]
lea edx, [ebp - 0xdf6]
test cx, cx
je 0x427291
add eax, 2
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x427280
mov word [edx], 0
movzx eax, word [ebp - 0x888]
test ax, ax
mov dword [ebp - 0x64], edi
je 0x4272c1
lea ecx, [ebp - 0x886]
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4272b0
mov word [edx], 0
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [ebp - 0x68], edx
jmp dword [eax*4 + 0x448628]
mov edi, dword [ebp - 0x64]
add edi, 4
mov eax, dword [case.0x425fb6.26]
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp edi, 0x14
setne al
jmp dword [eax*4 + 0x448610]
jmp dword [0x448618]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x888], 0x989b9a9d
mov dword [ebp - 0x884], 0
xor ecx, ecx
lea edx, [ecx + 0x200d34c6]
mov edi, edx
and edi, 0xb
xor edx, 0x9b
lea edx, [edx + edi*2]
add dl, 0x3a
xor dl, byte [ebp + ecx - 0x888]
add dl, 0xf9
mov byte [ebp + ecx - 0x888], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 8
jb 0x427320
mov ecx, dword [0x44dd14]
test ecx, ecx
je case.0x425fb6.13
mov edx, dword [ebp - 0x888]
xor edi, edi
mov ebx, dword [0x44dd18]
cmp dword [ebx + edi*8], 0x1b6183f2
je 0x427380
inc edi
cmp ecx, edi
jne 0x427370
jmp case.0x425fb6.13
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x425fb6.13
push eax
push 4
push ecx
push dword [0x44dd1c]
call fcn.0043e8e0
add esp, 0x10
jmp case.0x425fb6.13
jmp dword [0x448624]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x888], 0x989b9a9d
mov dword [ebp - 0x884], 0
xor ecx, ecx
nop
lea edx, [ecx + 0x200d34c6]
mov esi, edx
and esi, 0xb
xor edx, 0x9b
lea edx, [edx + esi*2]
add dl, 0x3a
xor dl, byte [ebp + ecx - 0x888]
add dl, 0xf9
mov byte [ebp + ecx - 0x888], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 8
jb 0x4273c0
mov ecx, dword [0x44dd14]
test ecx, ecx
je 0x4273a0
mov edx, dword [ebp - 0x888]
xor edi, edi
mov ebx, dword [0x44dd18]
cmp dword [ebx + edi*8], 0x1b6183f2
je 0x427420
inc edi
cmp ecx, edi
jne 0x427410
jmp 0x4273a0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x4273a0
push eax
push 4
push ecx
push dword [0x44dd1c]
call fcn.0043e8e0
add esp, 0x10
jmp dword [0x448624]
mov edi, dword [ebp - 0x74]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x427461
mov eax, 0xffffffff
push eax
call fcn.00408ac0
add esp, 4
mov ebx, eax
mov dword [ebp - 0x70], edi
lea eax, [ebp - 0x70]
push eax
push ebx
push esi
push dword [ebp - 0x48]
call fcn.004413a0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448600]
jmp dword [0x4486a0]
mov dword [ebp - 0x60], esi
lea eax, [ebp - 0x44]
push dword [ebp - 0x48]
push 0
push 0x20019
push eax
mov dword [ebp - 0x5c], ebx
push ebx
call fcn.00441290
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448608]
mov esi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x5c]
jmp dword [0x4486a0]
mov eax, dword [ebp - 0x14]
mov word [eax], 0
mov ebx, dword [ebp - 0x4c]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x4485f8]
movzx ebx, word [ebp - 0x1df8]
xor esi, esi
test bx, bx
je 0x42757b
lea eax, [ebp - 0x1df6]
mov ecx, ebx
jmp 0x42754c
inc esi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x42757b
cmp cx, 0x7f
jbe 0x427540
movzx edx, cx
cmp edx, 0x7ff
ja 0x427570
add esi, 2
jmp 0x427541
cmp cx, 0xffff
je 0x427541
add esi, 3
jmp 0x427541
mov dword [ebp - 0x10], esi
lea eax, [esi + 1]
push eax
call fcn.00408ac0
add esp, 4
mov edi, eax
mov dword [ebp - 0x18], eax
test bx, bx
je 0x4276e4
mov edi, dword [ebp - 0x18]
cmp dword [ebp - 0x10], 0
je 0x4276e4
lea edx, [ebp - 0x1df8]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, bx
lea esi, [edx + 2]
cmp bx, 0x7f
ja 0x4275e0
lea eax, [edi + 1]
mov byte [edi], bl
jmp 0x427690
cmp ebx, 0x7ff
ja 0x427610
cmp ecx, 2
jb 0x427610
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 0x427690
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4276aa
cmp ecx, 4
jb 0x4276aa
movzx eax, word [edx + 2]
mov dword [ebp - 0x1c], eax
shl ebx, 0xa
add ebx, 0xfca00000
lea esi, [eax - 0xdc00]
mov eax, esi
and eax, ebx
xor esi, ebx
lea ebx, [esi + eax*2]
mov dword [ebp - 0x30], ebx
lea ebx, [esi + eax*2]
add ebx, 0x10000
mov eax, ebx
shr eax, 0x12
add al, 0xf0
mov byte [edi], al
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [edi + 1], bl
mov eax, dword [ebp - 0x30]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 2], al
mov al, 0x3f
sub al, byte [ebp - 0x1c]
and al, 0x3f
xor al, 0xbf
mov byte [edi + 3], al
lea eax, [edi + 4]
add edx, 4
mov esi, edx
nop
nop
nop
nop
add ecx, edi
sub ecx, eax
mov edx, esi
mov edi, eax
movzx ebx, word [edx]
test bx, bx
je 0x4276e4
test ecx, ecx
jne 0x4275c0
jmp 0x4276e4
movzx eax, ax
cmp eax, 0xdc00
jne 0x4276b8
mov edx, esi
jmp 0x427698
cmp ecx, 3
jb 0x4276e0
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
mov byte [edi + 2], bl
lea eax, [edi + 3]
jmp 0x427690
mov eax, edi
jmp 0x427690
mov byte [edi], 0
mov edx, dword [ebp - 0x58]
mov dword [edx], 0x63667909
mov dword [edx + 4], 0x6f737a7d
mov dword [edx + 8], 0x606c6279
mov dword [edx + 0xc], 0x67670e2f
mov dword [edx + 0x10], 0x10156a6c
mov dword [edx + 0x14], 0x101c7557
mov dword [edx + 0x18], 0x21a080a
mov dword [edx + 0x1c], 0x13165f13
mov dword [edx + 0x20], 0xa914
mov byte [edx + 0x24], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0xae
xor cl, byte [edx + eax]
add cl, 0x9a
mov byte [edx + eax], cl
inc eax
cmp eax, 0x25
jne 0x427730
mov ecx, dword [ebp + 8]
push dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
push esi
push edx
call fcn.00409b10
mov ebx, eax
jmp dword [0x4486b8]
and bl, 1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
pop edi
inc edx
add al, ch
pop edi
inc edx
add al, ch
pop edi
inc edx
add bh, ch
pop edi
inc edx
add byte [ecx], al
jne 0x448635
add byte [eax + 0x74], dl
inc edx
add byte [ebp + 0x77], ah
inc edx
add byte [edx], bl
jne 0x448641
add byte [esp + esi*2 + 0x74a00042], cl
inc edx
add cl, cl
je 0x44864d
add byte [eax], dl
pushal
inc edx
add byte [ecx], al
jae 0x448655
add al, dh
jno 0x448659
add byte [esi + 0x7004273], ah
jae 0x448661
add byte [esi - 0x36ffbd8d], ah
je 0x448669
add al, ah
jb 0x44866d
add byte [edi + 0x100426b], dl
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add al, ah
jb 0x44867d
add byte [ecx], al
add byte [eax], al
add al, dh
jb 0x448685
add al, dh
jb 0x448689
add al, dh
jb 0x44868d
add dl, dh
jb 0x448691
add byte [eax - 0x38ffbd95], al
imul eax, dword [edx], 0xffffffa0
jo 0x44869d
add byte [eax], ch
insb byte es:[edi], dx
inc edx
add byte [ebx + 0x6c], al
insb byte es:[edi], dx
inc edx
add byte [eax + 0x6c], ah
inc edx
add byte [ebp + ebp*2 + 0x6fb00042], al
insd dword es:[edi], dx
inc edx
add byte [eax - 0x7ffbd91], dh
outsd dx, dword [esi]
inc edx
add al, bh
imul eax, dword [edx], 0xffffff9a
insd dword es:[edi], dx
inc edx
add byte [esi], bh
outsd dx, dword [esi]
inc edx
add byte [eax + 0x3e00426e], dl
outsb dx, byte [esi]
inc edx
add byte [esi], bh
outsd dx, dword [esi]
inc edx
add byte [eax - 0x7ffbd91], ah
outsd dx, dword [esi]
inc edx
add al, bh
imul eax, dword [edx], 0xffffffa0
insd dword es:[edi], dx
inc edx
add byte [esi + 0x46004270], ah
jno 0x4486d9
jo 0x4486d5
add byte [esi + 0x71], al
inc edx
add byte [esi + 0x71], al
inc edx
add byte [eax - 0x2affbd95], al
imul eax, dword [edx], 0xffffffd5
je 0x4486e5
add dh, bl
je 0x4486e9
add al, dh
je 0x4486ed
add al, dh
je 0x4486f1
add dl, dh
je 0x4486f5
add al, dh
je 0x4486f9
add byte [edi + esi*2 + 0x42], bl
add byte [ebp + 0x77], ah
inc edx
add al, dh
jp 0x448705
add byte [edx + edi*2 + 0x7af70042], ch
inc edx
add byte [eax], al
jge 0x448711
add ch, al
jl 0x448715
add byte [eax], ah
jge 0x448719
add dl, dh
add byte [edx], 0x60
jge 0x448721
add cl, dh
jge 0x448725
add byte [ebp + 0x7e], cl
inc edx
jle 0x448729
add byte [eax + 0x7e], ah
inc edx
jle 0x44872d
add byte [eax - 0x6fffbd82], al
jle 0x448731
add byte [eax - 0x6dffbd82], dl
jle 0x448735
add byte [edx - 0x6dffbd82], dl
jle 0x448739
add byte [edx - 0x3fffbd82], dl
jle 0x44873d
add al, al
jle 0x448741
add byte [ecx + 0x7f], ah
inc edx
add byte [edi + 0x7f], bl
inc edx
jg 0x448749
add byte [edi + 0x6c00427e], dh
jle 0x448751
add byte [esi], al
add byte [edx], 0xe0
jge 0x448759
add al, ah
jge 0x44875d
add bl, dh
jl 0x448761
add byte [eax - 0x7effbd80], ah
add byte [edx], 0x81
add byte [edx], 0x81
add byte [edx], 0
jge 0x448771
add dl, dh
add byte [edx], 0xe0
add byte [edx], 0xe0
jp 0x448779
add al, dh
jp 0x44877d
add byte [edx + edi*2 + 0x7ac00042], ch
inc edx
jp 0x448781
add al, al
jp 0x448785
add ch, cl
add byte [edx], 0xda
add byte [edx], 0xda
add byte [edx], 0xf7
jge 0x448795
add byte [eax + 0x2900427e], dl
mov es, word [edx]
xchg edx, eax
mov byte [edx], al
aas
mov es, word [edx]
sub dword [esi - 0x7751ffbe], ecx
inc edx
add byte [eax - 0x73], cl
inc edx
add byte [eax - 0x77], ah
inc edx
add byte [edi], bh
mov dword [edx], eax
aas
mov es, word [edx]
xchg esp, eax
mov dword [edx], eax
lds ecx, [ecx - 0x75dfffbe]
inc edx
add byte [eax], cl
mov dword [edx], eax
and byte [edx - 0x75f7ffbe], cl
inc edx
add byte [eax], cl
mov al, byte [edx]
add dword [eax], eax
mov al, byte [edx]
or byte [edx - 0x75f7ffbe], cl
inc edx
add byte [ecx], al
add byte [eax], al
add byte [edi], bh
mov al, byte [edx]
or byte [edx + 0x10042], cl
add byte [eax], al
aas
mov es, word [edx]
sub dword [edx - 0x72f7ffbe], ecx
inc edx
add byte [eax], dh
mov al, byte [edx]
mov al, byte ds:[edx]
mov al, byte [edx]
or byte [ebp - 0x75cfffbe], cl
inc edx
add byte [esi], bh
mov al, byte [edx]
jae 0x448730
inc edx
add dl, ah
mov eax, dword [edx]
jmp 0x448739