Function at 0x41e812
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x2200
call fcn.00408f30
mov dword [esp + 0x11f8], 0x63d061dc
mov dword [esp + 0x11fc], 0x67a165a1
mov dword [esp + 0x1200], 0x6bd969a1
mov dword [esp + 0x1204], 0x6fdc6dd8
mov dword [esp + 0x1208], 0x53ee51e9
mov dword [esp + 0x120c], 0x57e555e1
mov dword [esp + 0x1210], 0x5be8599d
mov word [esp + 0x1214], 0x5d5c
mov dword [esp + 0x1216], 0
mov dword [esp + 0x121a], 0
mov byte [esp + 0x121e], 0
mov dword [esp + 0xa88], 0
mov eax, dword [esp + 0xa88]
cmp eax, 0x26
ja 0x41d18b
nop
mov eax, dword [esp + 0xa88]
mov ecx, dword [esp + 0xa88]
movzx ecx, byte [esp + ecx + 0x11f8]
lea edx, [eax + ecx]
add edx, 0x7c6fbf90
add eax, 0x7c6fbf90
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x88]
add al, 0x10
mov ecx, dword [esp + 0xa88]
mov byte [esp + ecx + 0x11f8], al
inc dword [esp + 0xa88]
mov eax, dword [esp + 0xa88]
cmp eax, 0x27
jb 0x41d130
lea eax, [esp + 0x2c]
lea ebx, [esp + 0x11f8]
push 0
push 0
push 0x20019
push eax
push ebx
call fcn.004370e0
add esp, 0x14
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x43d9d4]
lea eax, [esp + 0x70]
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.00437500
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d9dc]
xor ecx, ecx
jmp 0x41ecfe
mov dword [esp + 8], ebx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], 0
cmp ecx, dword [esp + 0x28]
setb al
xor esi, esi
jmp dword [eax*4 + 0x43d9e4]
mov esi, dword [esp + 8]
mov word [esi], 0
mov eax, dword [esp + 0x10]
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43dac4]
movzx ecx, word [esp + 0x11f8]
test cx, cx
je 0x41ebc3
lea eax, [esp + 0x11f8]
xor ebx, ebx
jmp 0x41eacd
inc esi
xor eax, eax
cmp esi, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x43d9e4]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x70]
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x41d277
mov eax, 0xffffffff
push eax
call fcn.00408f60
add esp, 4
mov edi, eax
mov dword [esp + 0x6c], esi
lea eax, [esp + 0x6c]
push eax
push edi
mov esi, dword [esp + 0x58]
push esi
push dword [esp + 0x38]
call fcn.00437230
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d9ec]
lea eax, [esp + 0x24]
push dword [esp + 0x2c]
push 0
push 0x20019
push eax
mov dword [esp + 0x6c], edi
push edi
call fcn.004370e0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d9f4]
mov dword [esp + 0x88], 0xab03ad19
mov dword [esp + 0x8c], 0x9708a907
mov dword [esp + 0x90], 0x930d9507
mov dword [esp + 0x94], 0x9f349103
mov dword [esp + 0x98], 0x9b3e9d00
mov dword [esp + 0x9c], 0x872f9923
mov dword [esp + 0xa0], 0x832e8516
mov dword [esp + 0xa4], 0x8f158113
mov dword [esp + 0xa8], 0x8bea8d13
mov dword [esp + 0xac], 0xf75b893d
mov dword [esp + 0xb0], 0xf36df56b
mov dword [esp + 0xb4], 0xff55f151
mov dword [esp + 0xb8], 0xfb68fd55
mov dword [esp + 0xbc], 0xe786f953
mov dword [esp + 0xc0], 0xe37fe55b
mov dword [esp + 0xc4], 0xef71e14e
mov dword [esp + 0xc8], 0xeb75ed75
mov dword [esp + 0xcc], 0xd77be974
mov dword [esp + 0xd0], 0xd376d541
mov dword [esp + 0xd4], 0xdf40d160
mov dword [esp + 0xd8], 0xdb70dd4f
mov dword [esp + 0xdc], 0xc752d971
mov dword [esp + 0xe0], 0xc35dc569
mov dword [esp + 0xe4], 0xcf97c164
mov dword [esp + 0xe8], 0xcb91cd93
mov dword [esp + 0xec], 0x3779c995
mov dword [esp + 0xf0], 0x3378357e
mov dword [esp + 0xf4], 0x3f623160
mov dword [esp + 0xf8], 0x3b653d6d
mov dword [esp + 0xfc], 0x27773969
mov dword [esp + 0x100], 0x238e2575
mov dword [esp + 0x104], 0x2f60217f
mov dword [esp + 0x108], 0x2b722d74
mov dword [esp + 0x10c], 0x17462969
mov dword [esp + 0x110], 0x13431544
mov dword [esp + 0x114], 0x1f421140
mov dword [esp + 0x118], 0x1b441d52
mov dword [esp + 0x11c], 0x75c1959
mov dword [esp + 0x120], 0x359055e
mov dword [esp + 0x124], 0xfaa015a
mov word [esp + 0x128], 0xd0c
lea eax, [esp + 0x128]
mov word [eax + 0xe], 0
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xaf
ja 0x41d52d
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx edx, byte [esp + ecx + 0x88]
mov ecx, 0x5de3d4e5
sub ecx, eax
add eax, 0x1a
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0xa88], ecx
mov eax, dword [esp + 0xa88]
add al, 0x4a
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xb0
jb 0x41d4d0
lea edi, [esp + 0xe8a]
lea eax, [esp + 0x88]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x128]
lea edi, [esp + 0xf2a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x43db4df1
mov dword [esp + 0x8c], 0x47d041e7
mov dword [esp + 0x90], 0xbb2d45d7
mov dword [esp + 0x94], 0xbf24b92b
mov dword [esp + 0x98], 0xb31ebd28
mov dword [esp + 0x9c], 0xb72fb11b
mov dword [esp + 0xa0], 0xab0eb526
mov dword [esp + 0xa4], 0xaf25a93b
mov dword [esp + 0xa8], 0xa3c2ad3b
mov dword [esp + 0xac], 0xa712a112
mov dword [esp + 0xb0], 0x9bdda508
mov dword [esp + 0xb4], 0x9f08990d
mov dword [esp + 0xb8], 0x93379d0a
mov dword [esp + 0xbc], 0x97029102
mov dword [esp + 0xc0], 0x8b2f953e
mov dword [esp + 0xc4], 0x8f19891e
mov dword [esp + 0xc8], 0x83118d15
mov dword [esp + 0xcc], 0x872a8112
mov dword [esp + 0xd0], 0xfb63852f
mov dword [esp + 0xd4], 0xff5af96a
mov dword [esp + 0xd8], 0xf379fd6f
mov dword [esp + 0xdc], 0xf796f167
mov dword [esp + 0xe0], 0xeb4ff549
mov dword [esp + 0xe4], 0xef79e97f
mov dword [esp + 0xe8], 0xe379ed4d
mov dword [esp + 0xec], 0xe774e179
mov dword [esp + 0xf0], 0xdbbae57f
mov dword [esp + 0xf4], 0xdf4bd96f
mov dword [esp + 0xf8], 0xd345dd7a
mov dword [esp + 0xfc], 0xd741d159
mov dword [esp + 0x100], 0xcb6fd540
mov dword [esp + 0x104], 0xcf62c955
mov dword [esp + 0x108], 0xc354cd7c
mov dword [esp + 0x10c], 0xc75cc153
mov dword [esp + 0x110], 0x3ba6c55d
mov dword [esp + 0x114], 0x3fa9399d
mov dword [esp + 0x118], 0x33813d90
mov dword [esp + 0x11c], 0x37a231a5
mov dword [esp + 0x120], 0x2bb935a8
mov dword [esp + 0x124], 0x2fb129bb
mov dword [esp + 0x128], 0x236b2d80
mov dword [esp + 0x12c], 0x276d2177
mov dword [esp + 0x130], 0x1b5d2571
mov dword [esp + 0x134], 0x1fa419a2
mov dword [esp + 0x138], 0x13461d4c
mov dword [esp + 0x13c], 0x17411141
mov dword [esp + 0x140], 0xb5b1545
mov dword [esp + 0x144], 0xfaa0959
mov dword [esp + 0x148], 0x3440d5b
mov dword [esp + 0x14c], 0x74e0148
mov dword [esp + 0x150], 0x7b2a0545
mov dword [esp + 0x154], 0x7f2f7928
mov dword [esp + 0x158], 0x73267d2c
mov dword [esp + 0x15c], 0x77207136
mov dword [esp + 0x160], 0x6b207535
mov dword [esp + 0x164], 0x6f256922
mov dword [esp + 0x168], 0x63ce6d26
mov word [esp + 0x16c], 0x6160
mov dword [esp + 0x16e], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xe9
ja 0x41d86f
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + 0x76]
and edx, ecx
mov esi, 0xfa6dbd89
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0xa88], esi
mov eax, dword [esp + 0xa88]
add al, 0xc6
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
mov eax, dword [esp + 0x888]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x888], eax
mov eax, dword [esp + 0x888]
cmp eax, 0xea
jb 0x41d800
lea edi, [esp + 0xf2c]
lea eax, [esp + 0x88]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x16c]
mov ecx, 1
lea edi, [esp + 0x1010]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0xa31bad71
mov dword [esp + 0x8c], 0xa710a107
mov dword [esp + 0x90], 0xbb0da517
mov dword [esp + 0x94], 0xbf04b90b
mov dword [esp + 0x98], 0xb31ebd08
mov dword [esp + 0x9c], 0xb70cb163
mov dword [esp + 0xa0], 0x8b33b50e
mov dword [esp + 0xa4], 0x8f2b892f
mov dword [esp + 0xa8], 0x83738d20
mov dword [esp + 0xac], 0x87748177
mov dword [esp + 0xb0], 0x9b368574
mov dword [esp + 0xb4], 0x9f2b994b
mov dword [esp + 0xb8], 0x932e9d28
mov dword [esp + 0xbc], 0x97259123
mov dword [esp + 0xc0], 0x6bc6952b
mov dword [esp + 0xc4], 0x6fd869b8
mov dword [esp + 0xc8], 0x63d86ddf
mov dword [esp + 0xcc], 0x67da61d9
mov dword [esp + 0xd0], 0x7bcd65c1
mov dword [esp + 0xd4], 0x7fad79d4
mov dword [esp + 0xd8], 0x73c67dc9
mov dword [esp + 0xdc], 0x77c571cc
mov dword [esp + 0xe0], 0x4bf575c7
mov dword [esp + 0xe4], 0x4f8749e4
mov dword [esp + 0xe8], 0x43894dbb
mov dword [esp + 0xec], 0x478141b5
mov dword [esp + 0xf0], 0x5b80459e
mov dword [esp + 0xf4], 0x5faa59a8
mov dword [esp + 0xf8], 0x53a55dad
mov dword [esp + 0xfc], 0x57a751a1
mov dword [esp + 0x100], 0x2b8e55a5
mov dword [esp + 0x104], 0x2fe829df
mov dword [esp + 0x108], 0x23ea2de4
mov dword [esp + 0x10c], 0x27d621e1
mov dword [esp + 0x110], 0x3bcb25d4
mov dword [esp + 0x114], 0x3fca39c8
mov dword [esp + 0x118], 0x33c43dfa
mov dword [esp + 0x11c], 0x37fc31f1
mov dword [esp + 0x120], 0xbc135fe
mov dword [esp + 0x124], 0xfa209c2
mov word [esp + 0x128], 0xd0c
lea eax, [esp + 0x128]
mov byte [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xaa
ja 0x41daf9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + 0x46]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xf2058746
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
add al, 0x16
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xab
jb 0x41daa0
lea edi, [esp + 0x1156]
lea eax, [esp + 0x88]
mov ebx, edi
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x128]
mov ecx, 1
lea edi, [esp + 0x11f6]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x6bf36dd9
mov dword [esp + 0x8c], 0x67e869f7
mov dword [esp + 0x90], 0x63ed65f7
mov dword [esp + 0x94], 0x5fc461f3
mov dword [esp + 0x98], 0x5bfe5dd0
mov dword [esp + 0x9c], 0x57cc59eb
mov dword [esp + 0xa0], 0x53cb55ce
mov dword [esp + 0xa4], 0x4fd351cf
mov dword [esp + 0xa8], 0x4b9b4de8
mov dword [esp + 0xac], 0x47944984
mov dword [esp + 0xb0], 0x43e64594
mov dword [esp + 0xb4], 0x3fb341f3
mov dword [esp + 0xb8], 0x3bae3db0
mov dword [esp + 0xbc], 0x37a539ab
mov dword [esp + 0xc0], 0x339635a3
mov dword [esp + 0xc4], 0x2fa03180
mov dword [esp + 0xc8], 0x2bb02dbf
mov dword [esp + 0xcc], 0x27b229b1
mov dword [esp + 0xd0], 0x23ad25b9
mov dword [esp + 0xd4], 0x1fad2184
mov dword [esp + 0xd8], 0x1b961d91
mov dword [esp + 0xdc], 0x1785198c
mov dword [esp + 0xe0], 0x13851587
mov dword [esp + 0xe4], 0xfc711b4
mov dword [esp + 0xe8], 0xbc10dc3
mov dword [esp + 0xec], 0x7b909c5
mov dword [esp + 0xf0], 0x3b805be
mov dword [esp + 0xf4], 0xff3201d0
mov dword [esp + 0xf8], 0xfb35fd2d
mov dword [esp + 0xfc], 0xf727f929
mov dword [esp + 0x100], 0xf36ef525
mov dword [esp + 0x104], 0xef50f13f
mov dword [esp + 0x108], 0xeb22ed24
mov dword [esp + 0x10c], 0xe736e929
mov dword [esp + 0x110], 0xe333e534
mov dword [esp + 0x114], 0xdf12e130
mov dword [esp + 0x118], 0xdb14dd62
mov dword [esp + 0x11c], 0xd71cd919
mov dword [esp + 0x120], 0xd319d51e
mov dword [esp + 0x124], 0xcf6ad11a
mov word [esp + 0x128], 0xcdcc
lea eax, [esp + 0x128]
mov word [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xab
ja 0x41dd97
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + 0x2af94992]
add eax, 0x92
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
mov eax, dword [esp + 0x888]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x888], eax
mov eax, dword [esp + 0x888]
cmp eax, 0xac
jb 0x41dd20
lea edx, [esp + 0x10b4]
lea eax, [esp + 0x88]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x128]
mov ecx, 1
lea edi, [esp + 0x1154]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0xb8b15a5
mov dword [esp + 0x8c], 0xf9e09af
mov dword [esp + 0x90], 0x3990d9f
mov dword [esp + 0x94], 0x79a0193
mov dword [esp + 0x98], 0x7ba80592
mov dword [esp + 0x9c], 0x7fe279cb
mov dword [esp + 0xa0], 0x73e37de4
mov dword [esp + 0xa4], 0x77eb71d7
mov dword [esp + 0xa8], 0x6b2375da
mov dword [esp + 0xac], 0x6f3a6921
mov dword [esp + 0xb0], 0x63c06d3e
mov dword [esp + 0xb4], 0x67eb61d3
mov dword [esp + 0xb8], 0x5bf865f2
mov dword [esp + 0xbc], 0x5fc959cb
mov dword [esp + 0xc0], 0x53f05dc3
mov dword [esp + 0xc4], 0x57c651e2
mov dword [esp + 0xc8], 0x4bce55c7
mov dword [esp + 0xcc], 0x4fd449d5
mov dword [esp + 0xd0], 0x43d94dd5
mov dword [esp + 0xd4], 0x47f141ee
mov dword [esp + 0xd8], 0xbbd045cd
mov dword [esp + 0xdc], 0xbf29b926
mov dword [esp + 0xe0], 0xb321bd2f
mov dword [esp + 0xe4], 0xb7ffb11e
mov dword [esp + 0xe8], 0xabfdb5e3
mov dword [esp + 0xec], 0xafeda9e1
mov dword [esp + 0xf0], 0xa316ad14
mov dword [esp + 0xf4], 0xa7f4a1f2
mov dword [esp + 0xf8], 0x9bf1a5f1
mov dword [esp + 0xfc], 0x9fcf99cd
mov dword [esp + 0x100], 0x93389dc9
mov dword [esp + 0x104], 0x97d691c7
mov dword [esp + 0x108], 0x8bdc95de
mov dword [esp + 0x10c], 0x8fd889cd
mov dword [esp + 0x110], 0x83db8dde
mov dword [esp + 0x114], 0x87d481d2
mov dword [esp + 0x118], 0xfbd285c0
mov dword [esp + 0x11c], 0xffb2f9bd
mov dword [esp + 0x120], 0xf3b5fdb4
mov dword [esp + 0x124], 0xf75cf1b8
mov word [esp + 0x128], 0xf5f6
lea eax, [esp + 0x128]
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xad
ja 0x41e020
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea esi, [eax + 0xad]
and esi, ecx
mov edi, 0xcc38e452
sub edi, eax
or edi, ecx
not edi
add edi, ecx
sub edi, esi
mov dword [esp + 0xa88], edi
mov eax, dword [esp + 0xa88]
add al, 0x45
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xae
jb 0x41dfc0
lea eax, [esp + 0x1012]
lea esi, [esp + 0x88]
mov ecx, 0x28
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x128]
mov ecx, 1
lea edi, [esp + 0x10b2]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xe8a]
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0xf2c]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
xor ecx, ecx
xor eax, eax
cmp ecx, 5
setne al
mov ebx, dword [esp + 8]
jmp dword [eax*4 + 0x43d9fc]
mov dword [esp + 0x60], ecx
mov eax, dword [esp + ecx*4 + 0x74]
mov dword [esp + 0x88], 0x83b281b0
mov dword [esp + 0x8c], 0x87b685b4
mov dword [esp + 0x90], 0x8bba89b8
mov dword [esp + 0x94], 0x8f568dbc
mov word [esp + 0x98], 0x9190
lea ecx, [esp + 0x128]
mov word [ecx - 0x86], 0
mov dword [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 0x1b
ja 0x41e17c
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx esi, byte [esp + edx + 0x88]
mov edx, 0x4b1b03bf
sub edx, ecx
add ecx, 0x40
and ecx, esi
or edx, esi
not edx
add edx, esi
sub edx, ecx
mov dword [esp + 0xa88], edx
mov ecx, dword [esp + 0xa88]
add cl, 0x40
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0x1c
jb 0x41e120
movzx ecx, word [eax]
lea edx, [esp + 0x888]
test cx, cx
je 0x41e1b1
add eax, 2
lea edx, [esp + 0x888]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41e1a0
mov word [edx], 0
movzx eax, word [esp + 0x88]
test ax, ax
je 0x41e1e1
lea ecx, [esp + 0x8a]
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41e1d0
mov word [edx], 0
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [esp + 0x64], edx
jmp dword [eax*4 + 0x43da04]
mov dword [esp + 0x18], ecx
mov word [edx - 2], cx
lea eax, [esp + 0x58]
lea ecx, [esp + 0x888]
push dword [esp + 0x24]
push 0
push 0x20019
push eax
push ecx
call fcn.004370e0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43da1c]
mov eax, dword [case.0x41e08b.41]
jmp case.0x41e08b.38
mov dword [esp + 8], ebx
mov dword [esp + 0x68], 0x800
mov dword [esp + 0x20], 0x400
mov dword [esp + 0xc], 0
xor ecx, ecx
jmp 0x41e27b
mov ebx, dword [esp + 8]
mov word [ebx], 0xa
add ebx, 2
mov dword [esp + 8], ebx
mov al, 1
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x1c]
inc ecx
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0xa8c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x98]
push eax
mov dword [esp + 0x30], ecx
push ecx
push dword [esp + 0x70]
call fcn.00437830
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43da24]
mov eax, dword [esp + 0xc]
and al, 1
movzx ecx, al
xor eax, eax
jmp dword [ecx*4 + 0x43da2c]
xor ecx, ecx
cmp dword [esp + 0x54], 1
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x43da34]
movzx eax, al
jmp dword [eax*4 + 0x43da3c]
jmp dword [0x43da68]
nop
nop
nop
nop
jmp dword [0x43da70]
xor eax, eax
cmp dword [esp + 0x54], 3
sete al
jmp dword [eax*4 + 0x43da74]
xor eax, eax
movzx eax, al
jmp dword [eax*4 + 0x43da8c]
mov dword [esp + 0x30], 0xfb1df905
mov dword [esp + 0x34], 0xff6dfd1f
mov dword [esp + 0x38], 0xf36ef169
mov dword [esp + 0x3c], 0xf7f4f566
mov byte [esp + 0x40], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x10
ja 0x41e3a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax + ecx]
add edx, 0xd261861f
add eax, 0xd261861f
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0x27
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x11
jb 0x41e360
movzx esi, word [esp + 0x30]
lea ebx, [esp + 0x88]
test si, si
je 0x41e524
lea ecx, [esp + 0x30]
lea edx, [esp + 0x88]
mov ebx, edx
jmp 0x41e3dc
movzx esi, word [ecx]
test si, si
je 0x41e524
movzx edi, word [edx]
test di, di
je 0x41e522
add edx, 2
add ecx, 2
lea eax, [ebx + 2]
cmp di, si
je 0x41e3fa
mov edx, eax
mov ebx, eax
je 0x41e3d0
lea ecx, [esp + 0x30]
jmp 0x41e3d0
mov dword [esp + 0x30], 0x5bbb59a8
mov dword [esp + 0x34], 0x47d545d7
mov dword [esp + 0x38], 0x43d541df
mov dword [esp + 0x3c], 0x4fa24dde
mov word [esp + 0x40], 0x4948
lea eax, [esp + 0x42]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1e
ja 0x41e4ac
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax + 0xc]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x1959870c
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 0xac
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x1f
jb 0x41e470
mov eax, dword [case.0x41e08b.34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
movzx esi, word [esp + 0x30]
lea eax, [esp + 0x88]
test si, si
je 0x41e66a
lea ecx, [esp + 0x30]
lea edx, [esp + 0x88]
mov eax, edx
jmp 0x41e4fc
movzx esi, word [ecx]
test si, si
je 0x41e66a
movzx edi, word [edx]
test di, di
je 0x41e668
add edx, 2
add ecx, 2
lea ebx, [eax + 2]
cmp di, si
je 0x41e51a
mov edx, ebx
mov eax, ebx
je 0x41e4f0
lea ecx, [esp + 0x30]
jmp 0x41e4f0
xor ebx, ebx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43da3c]
mov eax, dword [esp + 0x20]
cmp eax, 2
jae 0x41e550
mov esi, dword [esp + 8]
jmp dword [0x43da48]
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and eax, 3
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xa88]
je 0x41e595
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
dec edx
movzx edi, word [ecx]
xor ebx, ebx
test di, di
setne bl
lea ecx, [ecx + ebx*2]
mov word [esi], di
add esi, 2
dec eax
jne 0x41e570
cmp dword [esp + 0xc], 3
jae 0x41e5a0
jmp dword [0x43da48]
mov esi, dword [esp + 8]
cmp dword [esp + 0xc], 3
jb 0x41e58f
mov ebx, esi
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [ecx]
xor edx, edx
test si, si
setne dl
mov word [ebx], si
lea esi, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea edi, [esi + edx*2]
movzx edx, word [esi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebx + 4], dx
lea edx, [edi + ecx*2]
movzx esi, word [edi + ecx*2]
xor ecx, ecx
test si, si
setne cl
lea ecx, [edx + ecx*2]
mov word [ebx + 6], si
add ebx, 8
add eax, 0xfffffffc
jne 0x41e5b0
mov esi, ebx
jmp dword [0x43da48]
mov word [esi], 0x3a
lea eax, [esi + 4]
mov dword [esp + 8], eax
jmp dword [0x43da4c]
mov word [esi], 0x3a
mov word [esi], 0x3a
lea eax, [esi + 4]
mov dword [esp + 8], eax
jmp dword [0x43da4c]
jmp dword [0x43da58]
mov word [esi + 2], 0x20
mov al, 1
mov dword [esp + 0xc], eax
jmp dword [0x43da60]
mov word [esi + 2], 0x20
mov word [esi + 2], 0x20
mov al, 1
mov dword [esp + 0xc], eax
jmp dword [0x43da60]
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43da8c]
mov eax, dword [esp + 0x20]
cmp eax, 2
jb 0x41e260
shr eax, 1
lea ecx, [eax - 1]
mov esi, eax
and esi, 3
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xa88]
je 0x41e6ba
mov edx, dword [esp + 8]
dec eax
movzx edi, word [ecx]
xor ebx, ebx
test di, di
setne bl
lea ecx, [ecx + ebx*2]
mov word [edx], di
add edx, 2
dec esi
jne 0x41e6a0
jmp 0x41e6be
mov edx, dword [esp + 8]
cmp dword [esp + 0x10], 3
mov ebx, edx
jb 0x41e264
nop
nop
nop
nop
nop
movzx esi, word [ecx]
xor edx, edx
test si, si
setne dl
mov word [ebx], si
lea esi, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea edi, [esi + edx*2]
movzx edx, word [esi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebx + 4], dx
lea edx, [edi + ecx*2]
movzx esi, word [edi + ecx*2]
xor ecx, ecx
test si, si
setne cl
lea ecx, [edx + ecx*2]
mov word [ebx + 6], si
add ebx, 8
add eax, 0xfffffffc
jne 0x41e6d0
jmp 0x41e264
mov eax, dword [esp + 0x58]
mov dword [esp + 0x30], 0x2050407
lea ecx, [esp + 0x42]
mov dword [ecx - 0xb], 0
mov dword [ecx - 0xe], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xa
ja 0x41e7b5
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x30]
mov esi, ecx
and esi, 0xc899a901
xor ecx, 0x4899a901
lea ecx, [ecx + esi*2]
mov esi, ecx
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov edx, ecx
xor edx, 0xf8
and ecx, 0x78
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xb
jb 0x41e760
mov ecx, dword [0x441d6c]
test ecx, ecx
je 0x41e800
mov edx, dword [esp + 0x30]
xor esi, esi
mov edi, dword [0x441d70]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x41e7e0
inc esi
cmp ecx, esi
jne 0x41e7d0
jmp 0x41e800
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x41e800
push eax
push 1
push dword [0x441d74]
push ecx
call fcn.00434400
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x41e08b.41]
mov ebx, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0x18]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
mov edx, dword [esp + 0x64]
jmp dword [eax*4 + 0x43da04]
jmp dword [0x43da14]
mov ecx, dword [esp + 0x60]
inc ecx
xor eax, eax
cmp ecx, 5
setne al
jmp dword [eax*4 + 0x43d9fc]
mov dword [esp + 8], ebx
jmp dword [0x43daa8]
cmp dword [edi + esi*8], 0x11081610
je 0x41e870
inc esi
cmp ecx, esi
jne 0x41e860
jmp case.0x41e08b.43
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x41e08b.43
push eax
push 1
push dword [0x441d74]
push ecx
call fcn.00434400
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov dword [esp + 0x88], 0x2050407
lea ecx, [esp + 0x128]
mov dword [ecx - 0x99], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 0xa
ja 0x41e950
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
mov esi, ecx
and esi, 0xc899a901
xor ecx, 0x4899a901
lea ecx, [ecx + esi*2]
mov esi, ecx
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
mov dword [esp + 0xa88], ecx
mov ecx, dword [esp + 0xa88]
mov edx, ecx
xor edx, 0xf8
and ecx, 0x78
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0xb
jb 0x41e8e0
mov ecx, dword [0x441d6c]
test ecx, ecx
je 0x41e9a0
mov edx, dword [esp + 0x88]
xor esi, esi
mov edi, dword [0x441d70]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x41e980
inc esi
cmp ecx, esi
jne 0x41e970
jmp 0x41e9a0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x41e9a0
push eax
push 1
push dword [0x441d74]
push ecx
call fcn.00434400
add esp, 0x10
nop
nop
nop
nop
nop
nop
jmp dword [0x43daac]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x5c]
jmp dword [0x43dab4]
push eax
call fcn.00408f70
add esp, 4
inc esi
xor eax, eax
cmp esi, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x43d9e4]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x88], 0x2050407
lea ecx, [esp + 0x128]
mov dword [ecx - 0x99], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 0xa
ja 0x41ea90
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
mov esi, ecx
and esi, 0xc899a901
xor ecx, 0x4899a901
lea ecx, [ecx + esi*2]
mov esi, ecx
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
mov dword [esp + 0xa88], ecx
mov ecx, dword [esp + 0xa88]
mov edx, ecx
xor edx, 0xf8
and ecx, 0x78
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0xb
jb 0x41ea20
mov ecx, dword [0x441d6c]
test ecx, ecx
je case.0x41e08b.43
mov edx, dword [esp + 0x88]
xor esi, esi
mov edi, dword [0x441d70]
jmp 0x41e860
inc ebx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x41eafd
cmp eax, esi
jae 0x41eafd
cmp cx, 0x7f
jbe 0x41eac0
movzx ecx, cx
cmp ecx, 0x7ff
ja 0x41eaf0
add ebx, 2
jmp 0x41eac1
mov ecx, ebx
and ecx, 3
xor ebx, 3
lea ebx, [ebx + ecx*2]
jmp 0x41eac1
lea edi, [ebx + 1]
push edi
call fcn.00408f60
add esp, 4
test ebx, ebx
mov dword [esp + 0x18], eax
jle 0x41ebd7
lea ecx, [eax + ebx]
mov dword [esp + 0x1c], ecx
add edi, eax
mov dword [esp + 0xc], edi
lea edx, [esp + 0x11f8]
mov edi, eax
jmp 0x41eb4a
mov byte [edi], cl
mov esi, 1
add edx, 2
add edi, esi
cmp edi, dword [esp + 0x1c]
mov esi, dword [esp + 8]
jae 0x41ebd9
cmp edx, esi
jae 0x41ebd9
movzx ecx, word [edx]
test cx, cx
je 0x41ebd9
cmp cx, 0x7f
jbe 0x41eb30
mov eax, edi
not eax
add eax, dword [esp + 0xc]
cmp eax, 2
jb 0x41eb91
movzx esi, cx
cmp esi, 0x7ff
ja 0x41eb91
mov eax, ecx
shr eax, 6
xor al, 0xc0
mov byte [edi], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 1], cl
mov esi, 2
jmp 0x41eb37
xor esi, esi
cmp eax, 3
jb 0x41eb37
movzx esi, cx
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 2], cl
mov esi, 3
jmp 0x41eb37
xor ebx, ebx
push 1
call fcn.00408f60
add esp, 4
mov edi, eax
mov dword [esp + 0x18], eax
jmp 0x41ebd9
mov edi, eax
mov ecx, dword [ebp + 8]
mov byte [edi], 0
mov dword [esp + 0x88], 0xdfd2dd8d
mov dword [esp + 0x8c], 0xd3e7e6d9
mov dword [esp + 0x90], 0xaca8d6dd
mov dword [esp + 0x94], 0xabab8aeb
mov dword [esp + 0x98], 0xaca1aea0
mov dword [esp + 0x9c], 0xa4a081e3
mov dword [esp + 0xa0], 0x8eb6acae
mov dword [esp + 0xa4], 0xa7bafbbf
mov word [esp + 0xa8], 0x2db8
mov dword [esp + 0xaa], 0
mov word [esp + 0xae], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0x27
ja 0x41ecd4
nop
nop
nop
mov eax, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
lea esi, [eax + 0x3aabb4b6]
and esi, edx
add eax, edx
add eax, 0x3aabb4b6
add esi, esi
sub eax, esi
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
mov edx, eax
or edx, 5
and eax, 5
add eax, edx
inc al
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0x28
jb 0x41ec70
lea eax, [esp + 0x88]
push ebx
mov esi, dword [esp + 0x1c]
push esi
push eax
call fcn.00409950
mov dword [esp + 0x10], eax
jmp dword [0x43dacc]
jmp dword [0x43dad4]
mov ecx, dword [esp + 0x10]
and cl, 1
mov eax, dword [case.0x41d1ae.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [0x43daf0]
push esi
call fcn.00408f70
add esp, 4
push esi
call fcn.00408f70
add esp, 4
jmp dword [0x43dadc]
int3