Function at 0x41e402
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21ec
call fcn.00409810
mov dword [esp + 0x11ec], 0x6cd96ac5
mov dword [esp + 0x11f0], 0x60286e28
mov dword [esp + 0x11f4], 0x64d062d8
mov dword [esp + 0x11f8], 0x58d566d1
mov dword [esp + 0x11fc], 0x5cf75af0
mov dword [esp + 0x1200], 0x50ec5ee8
mov dword [esp + 0x1204], 0x54e15214
mov dword [esp + 0x1208], 0x5655
mov dword [esp + 0xa7c], 0
mov eax, dword [esp + 0xa7c]
cmp eax, 0x1f
ja 0x41dc28
nop
nop
nop
mov eax, dword [esp + 0xa7c]
mov ecx, dword [esp + 0xa7c]
movzx ecx, byte [esp + ecx + 0x11ec]
add eax, 0xc3945e51
xor eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
add al, 0xc8
mov ecx, dword [esp + 0xa7c]
mov byte [esp + ecx + 0x11ec], al
inc dword [esp + 0xa7c]
mov eax, dword [esp + 0xa7c]
cmp eax, 0x20
jb 0x41dbe0
lea eax, [esp + 0x20]
lea ecx, [esp + 0x11ec]
push 0
push 0
push 0x20019
push eax
mov dword [esp + 0x14], ecx
push ecx
call fcn.0043f140
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x4456fc]
lea eax, [esp + 0x64]
lea ecx, [esp + 0x44]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x40]
call fcn.0043f5b0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445704]
xor eax, eax
jmp 0x41f4c4
lea esi, [esp + 0x11c]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0xc], 0
cmp ecx, dword [esp + 0x44]
setb al
xor ebx, ebx
jmp dword [eax*4 + 0x44570c]
mov edx, dword [esp + 4]
mov word [edx], 0
mov eax, dword [esp + 0xc]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x445724]
movzx ecx, word [esp + 0x11ec]
xor edi, edi
test cx, cx
je 0x41f2b8
lea eax, [esp + 0x11ec]
jmp 0x41f292
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x44]
setb al
jmp dword [eax*4 + 0x44570c]
mov edi, dword [esp + 0x64]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41dd13
mov eax, 0xffffffff
push eax
call fcn.00409840
add esp, 4
mov dword [esp + 0x60], edi
mov edi, eax
lea eax, [esp + 0x60]
push eax
push edi
push ebx
push dword [esp + 0x2c]
call fcn.0043f290
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44572c]
jmp dword [0x4457ac]
jmp dword [0x445738]
mov dword [esp + 0x58], ecx
mov eax, dword [esp + ecx + 0x68]
mov dword [esp + 0x7c], 0x1ccd1acb
mov dword [esp + 0x80], 0x10c11ecf
mov dword [esp + 0x84], 0x14c512c3
mov dword [esp + 0x88], 0x8e116c7
mov dword [esp + 0x8c], 0xa0b
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 0x13
ja 0x41de0a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add ecx, 0xcca62f42
xor ecx, edx
mov dword [esp + 0xa7c], ecx
mov ecx, dword [esp + 0xa7c]
add cl, 0xa7
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 0x14
jb 0x41ddc0
movzx ecx, word [eax]
lea esi, [esp + 0x87c]
test cx, cx
je 0x41de31
add eax, 2
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41de20
mov word [esi], 0
movzx eax, word [esp + 0x7c]
test ax, ax
je 0x41de61
lea ecx, [esp + 0x7e]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41de50
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x5c], esi
jmp dword [eax*4 + 0x445754]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x445754]
mov word [esi - 2], di
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x87c]
push dword [esp + 0x40]
push 0
push 0x20019
push eax
push ecx
call fcn.0043f140
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44576c]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], 0x800
mov dword [esp + 0x18], 0x400
mov dword [esp + 0x10], 0
xor ebp, ebp
jmp dword [0x445778]
lea eax, [esp + 0x18]
lea ecx, [esp + 0xa7c]
lea edx, [esp + 0x1c]
lea esi, [esp + 0x54]
lea edi, [esp + 0x7c]
push eax
push ecx
push edx
push esi
push edi
push ebp
push dword [esp + 0x54]
call fcn.0043f8c0
add esp, 0x1c
lea eax, [esp + 0x18]
lea edi, [esp + 0xa7c]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x54]
push eax
push edi
push ecx
push edx
lea eax, [esp + 0x8c]
push eax
push ebp
push dword [esp + 0x54]
call fcn.0043f8c0
add esp, 0x1c
jmp dword [0x44577c]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445784]
test byte [esp + 0x10], 1
sete al
cmp dword [esp + 0x1c], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44578c]
xor eax, eax
cmp dword [esp + 0x1c], 3
sete al
jmp dword [eax*4 + 0x44579c]
inc ebp
jmp dword [0x445778]
mov dword [esp + 0x24], 0x55f75313
mov dword [esp + 0x28], 0xa9e757f1
mov dword [esp + 0x2c], 0xad14ab1f
mov dword [esp + 0x30], 0xa1aeaf18
mov byte [esp + 0x34], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x10
ja 0x41dffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0x49add979
xor eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 0xd7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x11
jb 0x41dfd0
mov dword [esp + 8], ebp
movzx ebp, word [esp + 0x24]
lea esi, [esp + 0x7c]
test bp, bp
je 0x41e04c
lea eax, [esp + 0x7c]
lea edx, [esp + 0x24]
mov esi, eax
jmp 0x41e028
movzx ebp, word [edx]
test bp, bp
je 0x41e04c
movzx ebx, word [eax]
test bx, bx
je 0x41e04a
add eax, 2
add edx, 2
lea ecx, [esi + 2]
cmp bx, bp
je 0x41e042
mov esi, ecx
mov eax, ecx
je 0x41e020
lea edx, [esp + 0x24]
jmp 0x41e020
xor esi, esi
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x445794]
xor eax, eax
cmp dword [esp + 0x1c], 3
sete al
mov ebp, dword [esp + 8]
jmp dword [eax*4 + 0x44579c]
mov dword [esp + 0x24], 0x5de15f90
mov dword [esp + 0x28], 0x59d75bd1
mov dword [esp + 0x2c], 0x55e757d1
mov dword [esp + 0x30], 0x51ee53da
mov word [esp + 0x34], 0x2f50
lea eax, [esp + 0x36]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x17
ja 0x41e0ee
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0x7e27aeaf
xor eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 0x11
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x18
jb 0x41e0c0
movzx edi, word [esp + 0x24]
lea eax, [esp + 0x7c]
test di, di
je 0x41e220
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x24]
mov eax, ecx
jmp 0x41e11c
movzx edi, word [edx]
test di, di
je 0x41e220
mov ebx, ebp
movzx ebp, word [ecx]
test bp, bp
je 0x41e21c
add ecx, 2
add edx, 2
lea esi, [eax + 2]
cmp bp, di
je 0x41e13c
mov eax, esi
mov ecx, esi
mov ebp, ebx
je 0x41e110
lea edx, [esp + 0x24]
jmp 0x41e110
mov eax, dword [esp + 0x18]
cmp eax, 2
mov ebp, dword [esp + 8]
jae 0x41e15c
mov esi, dword [esp + 4]
jmp 0x41e202
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x41e30b
mov dword [esp + 0x10], ecx
xor ebp, ebp
lea edi, [esp + 0xa7c]
mov esi, dword [esp + 4]
nop
nop
nop
movzx ecx, word [edi]
xor ebx, ebx
test cx, cx
setne bl
lea edi, [edi + ebx*2]
mov word [esi], cx
add esi, 2
inc ebp
cmp edx, ebp
jne 0x41e180
sub eax, ebp
mov ebp, dword [esp + 8]
mov ecx, dword [esp + 0x10]
cmp ecx, 3
jb 0x41e202
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 2], cx
movzx ecx, word [ebx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [esi + 6], dx
add esi, 8
lea edi, [ebx + ecx*2]
add eax, 0xfffffffc
jne 0x41e1b0
mov dword [esi], 0x20003a
add esi, 4
mov dword [esp + 4], esi
mov al, 1
mov dword [esp + 0x10], eax
inc ebp
jmp dword [0x445778]
xor eax, eax
mov ebp, ebx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4457a4]
inc ebp
jmp dword [0x445778]
mov eax, dword [esp + 0x18]
cmp eax, 2
jae 0x41e247
mov esi, dword [esp + 4]
jmp 0x41e2f2
shr eax, 1
lea edx, [eax - 1]
mov edi, eax
lea ecx, [esp + 0xa7c]
and edi, 3
je 0x41e297
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebp
xor ebp, ebp
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea ecx, [ecx + ebx*2]
mov word [edx], si
add edx, 2
inc ebp
cmp edi, ebp
jne 0x41e270
mov dword [esp + 4], edx
sub eax, ebp
mov ebp, dword [esp + 8]
mov edx, dword [esp + 0xc]
cmp edx, 3
mov esi, dword [esp + 4]
jb 0x41e2f2
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
lea edi, [ecx + ebx*2]
mov word [esi], dx
movzx ecx, word [ecx + ebx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 2], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 4], cx
movzx edx, word [ebx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [esi + 6], dx
add esi, 8
lea ecx, [edi + ecx*2]
add eax, 0xfffffffc
jne 0x41e2a0
mov word [esi], 0xa
add esi, 2
mov dword [esp + 4], esi
mov al, 1
mov dword [esp + 0xc], eax
inc ebp
jmp dword [0x445778]
mov esi, dword [esp + 4]
cmp ecx, 3
jae 0x41e1b0
jmp 0x41e202
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], 0x5a5d5c5f
mov byte [esp + 0x28], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x41e370
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x24]
add ecx, 0x3c666479
xor ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
add cl, 0xd9
mov edx, dword [esp]
mov byte [esp + edx + 0x24], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x41e340
mov ecx, dword [0x449d78]
test ecx, ecx
mov esi, dword [esp + 0x5c]
je 0x41e3b0
mov edx, dword [esp + 0x24]
xor edi, edi
mov ebx, dword [0x449d7c]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x41e3a0
inc edi
cmp ecx, edi
jne 0x41e390
jmp 0x41e3b0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne case.default.0x41e3be
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x50]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x445754]
push eax
push 1
push dword [0x449d80]
push ecx
call fcn.0043c880
add esp, 0x10
mov edi, dword [esp + 0x50]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x445754]
mov eax, dword [case.0x41f1ef.7]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0x58]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x44574c]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x7c], 0x5a5d5c5f
mov byte [esp + 0x80], 0
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 4
lea esi, [esp + 0x11c]
ja 0x41e49a
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add ecx, 0x3c666479
xor ecx, edx
mov dword [esp + 0xa7c], ecx
mov ecx, dword [esp + 0xa7c]
add cl, 0xd9
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 5
jb 0x41e450
mov ecx, dword [0x449d78]
test ecx, ecx
je 0x41e4d0
mov edx, dword [esp + 0x7c]
xor edi, edi
mov ebx, dword [0x449d7c]
cmp dword [ebx + edi*8], 0x625b6034
je 0x41e4c0
inc edi
cmp ecx, edi
jne 0x41e4b0
jmp 0x41e4d0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x41e4de
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
jmp dword [0x4457ac]
push eax
push 1
push dword [0x449d80]
push ecx
call fcn.0043c880
add esp, 0x10
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
jmp dword [0x4457ac]
mov dword [esp + 0x48], edi
mov dword [esp + 0x7c], 0x53cb51e1
mov dword [esp + 0x80], 0x4fde4dcf
mov dword [esp + 0x84], 0x4bc549df
mov dword [esp + 0x88], 0x47da45db
mov dword [esp + 0x8c], 0x43e441ca
mov dword [esp + 0x90], 0x3fa73deb
mov dword [esp + 0x94], 0x3ba439a8
mov dword [esp + 0x98], 0x37bd35ab
mov dword [esp + 0x9c], 0x33d031bb
mov dword [esp + 0xa0], 0x2fb32d85
mov dword [esp + 0xa4], 0x2ba529a3
mov dword [esp + 0xa8], 0x27bd2589
mov dword [esp + 0xac], 0x23b621bd
mov dword [esp + 0xb0], 0x1ffc1dbb
mov dword [esp + 0xb4], 0x1b9719b3
mov dword [esp + 0xb8], 0x179915b8
mov dword [esp + 0xbc], 0x139d119d
mov dword [esp + 0xc0], 0xf930d9e
mov dword [esp + 0xc4], 0xbac0999
mov dword [esp + 0xc8], 0x79605ba
mov dword [esp + 0xcc], 0x39e0197
mov dword [esp + 0xd0], 0xff68fd99
mov dword [esp + 0xd4], 0xfb75f961
mov dword [esp + 0xd8], 0xf73ff55e
mov dword [esp + 0xdc], 0xf339f13b
mov dword [esp + 0xe0], 0xef51ed3d
mov dword [esp + 0xe4], 0xeb56e950
mov dword [esp + 0xe8], 0xe728e53a
mov dword [esp + 0xec], 0xe32de135
mov dword [esp + 0xf0], 0xdf0fdd31
mov dword [esp + 0xf4], 0xdb44d90d
mov dword [esp + 0xf8], 0xd716d517
mov dword [esp + 0xfc], 0xd318d11e
mov dword [esp + 0x100], 0xcf1ccd11
mov dword [esp + 0x104], 0xcb1bc91e
mov dword [esp + 0x108], 0xc708c51a
mov dword [esp + 0x10c], 0xc312c104
mov dword [esp + 0x110], 0xbf72bd01
mov dword [esp + 0x114], 0xbb71b970
mov dword [esp + 0x118], 0xb710b574
mov word [esp + 0x11c], 0xb1b6
mov byte [esi + 6], 0
mov dword [esi + 2], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xa6
ja 0x41e745
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
lea edx, [eax + ecx]
add eax, 0x2b
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xed64962b
mov dword [esp + 0xa7c], edx
mov eax, dword [esp + 0xa7c]
add al, 0x83
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xa7
jb 0x41e6f0
lea edi, [esp + 0xe7e]
lea eax, [esp + 0x7c]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, esi
lea edi, [esp + 0xf1e]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x7c], 0x51fd539f
mov dword [esp + 0x80], 0x55e057f5
mov dword [esp + 0x84], 0x59ef5be5
mov dword [esp + 0x88], 0x5df45fe9
mov dword [esp + 0x8c], 0x21fe23e8
mov dword [esp + 0x90], 0x258927f9
mov dword [esp + 0x94], 0x298e2b96
mov dword [esp + 0x98], 0x2d972f99
mov dword [esp + 0x9c], 0x31d23399
mov dword [esp + 0xa0], 0x35e237e2
mov dword [esp + 0xa4], 0x39ff3be8
mov dword [esp + 0xa8], 0x3d883f83
mov dword [esp + 0xac], 0x1a9038a
mov dword [esp + 0xb0], 0x5b207b2
mov dword [esp + 0xb4], 0x9a10bde
mov dword [esp + 0xb8], 0xdbb0fbe
mov dword [esp + 0xbc], 0x11a313a3
mov dword [esp + 0xc0], 0x15ca17a2
mov dword [esp + 0xc4], 0x19b51bcd
mov dword [esp + 0xc8], 0x1dba1faa
mov dword [esp + 0xcc], 0xe15be3ad
mov dword [esp + 0xd0], 0xe506e755
mov dword [esp + 0xd4], 0xe941eb37
mov dword [esp + 0xd8], 0xed5bef5d
mov dword [esp + 0xdc], 0xf15bf34b
mov dword [esp + 0xe0], 0xf544f75f
mov dword [esp + 0xe4], 0xf91afb5d
mov dword [esp + 0xe8], 0xfd45ff2d
mov dword [esp + 0xec], 0xc177c35a
mov dword [esp + 0xf0], 0xc573c77f
mov dword [esp + 0xf4], 0xc961cb70
mov dword [esp + 0xf8], 0xcd12cf7b
mov dword [esp + 0xfc], 0xd164d31c
mov dword [esp + 0x100], 0xd57cd761
mov dword [esp + 0x104], 0xd976db7b
mov dword [esp + 0x108], 0xdd6bdf73
mov dword [esp + 0x10c], 0xa173a300
mov dword [esp + 0x110], 0xa512a71b
mov dword [esp + 0x114], 0xa91bab08
mov dword [esp + 0x118], 0xad03af19
mov dword [esp + 0x11c], 0xb14db370
mov dword [esp + 0x120], 0xb54fb745
mov dword [esp + 0x124], 0xb97fbb4f
mov dword [esp + 0x128], 0xbd74bf72
mov dword [esp + 0x12c], 0x8176834c
mov dword [esp + 0x130], 0x85738777
mov dword [esp + 0x134], 0x897d8b73
mov dword [esp + 0x138], 0x8d2a8f7f
mov dword [esp + 0x13c], 0x91549379
mov dword [esp + 0x140], 0x956e9768
mov dword [esp + 0x144], 0x996a9b53
mov dword [esp + 0x148], 0x9d699f68
mov dword [esp + 0x14c], 0x6196636c
mov dword [esp + 0x150], 0x659067a6
mov dword [esp + 0x154], 0x69906ba3
mov dword [esp + 0x158], 0x6d976f92
mov dword [esp + 0x15c], 0x71ae7396
mov word [esp + 0x160], 0x7770
mov byte [esi + 0x4a], 0
mov dword [esi + 0x46], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xea
ja 0x41ea66
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
lea edx, [eax + 0xaf]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x1a7050af
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0x1d
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xeb
jb 0x41ea10
lea edi, [esp + 0xf20]
lea eax, [esp + 0x7c]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x160]
lea edi, [esp + 0x1004]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x7c], 0x608a5e90
mov dword [esp + 0x80], 0x64976286
mov dword [esp + 0x84], 0x689c6696
mov dword [esp + 0x88], 0x6c8b6a9a
mov dword [esp + 0x8c], 0x70ad6e9b
mov dword [esp + 0x90], 0x749372a2
mov dword [esp + 0x94], 0x78927691
mov dword [esp + 0x98], 0x7c9a7a9e
mov dword [esp + 0x9c], 0x327ea3
mov dword [esp + 0xa0], 0x42b0236
mov dword [esp + 0xa4], 0x8d50637
mov dword [esp + 0xa8], 0xcfa0ada
mov dword [esp + 0xac], 0x10fd0efb
mov dword [esp + 0xb0], 0x14e412e2
mov dword [esp + 0xb4], 0x18c516fa
mov dword [esp + 0xb8], 0x1cef1acb
mov dword [esp + 0xbc], 0x20c71eee
mov dword [esp + 0xc0], 0x24c922c8
mov dword [esp + 0xc4], 0x28dc26c0
mov dword [esp + 0xc8], 0x2cfc2af7
mov dword [esp + 0xcc], 0x30c52ed8
mov dword [esp + 0xd0], 0x34c432df
mov dword [esp + 0xd4], 0x38d436c6
mov dword [esp + 0xd8], 0x3c063ae7
mov dword [esp + 0xdc], 0xc0f83e0a
mov dword [esp + 0xe0], 0xc400c2f4
mov dword [esp + 0xe4], 0xc80fc601
mov dword [esp + 0xe8], 0xccf9cafb
mov dword [esp + 0xec], 0xd0e4cefc
mov dword [esp + 0xf0], 0xd4e6d2e0
mov dword [esp + 0xf4], 0xd83dd6e4
mov dword [esp + 0xf8], 0xdc1fdaee
mov dword [esp + 0xfc], 0xe0d9dee7
mov dword [esp + 0x100], 0xe4d5e220
mov dword [esp + 0x104], 0xe8dae6d7
mov dword [esp + 0x108], 0xecd9eadb
mov dword [esp + 0x10c], 0xf0c3ee2d
mov dword [esp + 0x110], 0xf4c3f230
mov dword [esp + 0x114], 0xf8c0f6c1
mov dword [esp + 0x118], 0xfc21facd
mov word [esp + 0x11c], 0xfeff
mov dword [esp + 0x11e], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xa5
ja 0x41ecca
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0xf5c459e
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0x3f
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xa6
jb 0x41ec80
lea edi, [esp + 0x114a]
lea eax, [esp + 0x7c]
mov ebp, edi
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x11c]
mov ecx, 1
lea edi, [esp + 0x11ea]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x7c], 0x339b3181
mov dword [esp + 0x80], 0x37a63597
mov dword [esp + 0x84], 0x3bad39a7
mov dword [esp + 0x88], 0x3f9a3dab
mov dword [esp + 0x8c], 0x239c21aa
mov dword [esp + 0x90], 0x27822593
mov dword [esp + 0x94], 0x2b832980
mov dword [esp + 0x98], 0x2f8b2d8f
mov dword [esp + 0x9c], 0x13c31192
mov dword [esp + 0xa0], 0x17fa15c6
mov dword [esp + 0xa4], 0x1ba419c6
mov dword [esp + 0xa8], 0x1f8b1dab
mov dword [esp + 0xac], 0x3ac018a
mov dword [esp + 0xb0], 0x7950593
mov dword [esp + 0xb4], 0xbb409ab
mov dword [esp + 0xb8], 0xf9e0dba
mov dword [esp + 0xbc], 0xf356f19f
mov dword [esp + 0xc0], 0xf758f559
mov dword [esp + 0xc4], 0xfb6df951
mov dword [esp + 0xc8], 0xff4dfd46
mov dword [esp + 0xcc], 0xe374e169
mov dword [esp + 0xd0], 0xe775e54e
mov dword [esp + 0xd4], 0xeb45e977
mov dword [esp + 0xd8], 0xef37ed56
mov dword [esp + 0xdc], 0xd309d13b
mov dword [esp + 0xe0], 0xd711d505
mov dword [esp + 0xe4], 0xdb1ed910
mov dword [esp + 0xe8], 0xdf08dd0a
mov dword [esp + 0xec], 0xc315c10d
mov dword [esp + 0xf0], 0xc717c511
mov dword [esp + 0xf4], 0xcb6cc915
mov dword [esp + 0xf8], 0xcf0ecd1f
mov dword [esp + 0xfc], 0xb368b116
mov dword [esp + 0x100], 0xb764b571
mov dword [esp + 0x104], 0xbb6bb966
mov dword [esp + 0x108], 0xbf68bd6a
mov dword [esp + 0x10c], 0xa372a17c
mov dword [esp + 0x110], 0xa772a561
mov dword [esp + 0x114], 0xab71a970
mov dword [esp + 0x118], 0xaf10ad7c
mov dword [esp + 0x11c], 0x91ae
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xa3
ja 0x41ef2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0x8daaeabf
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0xf
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xa4
jb 0x41eee0
lea eax, [esp + 0x10a8]
lea edx, [esp + 0x7c]
mov edi, eax
mov ecx, 0x28
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x11c]
mov ecx, 1
lea edi, [esp + 0x1148]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x7c], 0x1189136f
mov dword [esp + 0x80], 0x15821771
mov dword [esp + 0x84], 0x99f0b99
mov dword [esp + 0x88], 0xd960f9d
mov dword [esp + 0x8c], 0x16c0396
mov dword [esp + 0x90], 0x59e0775
mov dword [esp + 0x94], 0x39a13ba0
mov dword [esp + 0x98], 0x3d593f59
mov dword [esp + 0x9c], 0x3161335e
mov dword [esp + 0xa0], 0x35663763
mov dword [esp + 0xa4], 0x29442b7a
mov dword [esp + 0xa8], 0x2db92f5d
mov dword [esp + 0xac], 0x21bc23b6
mov dword [esp + 0xb0], 0x25b727b5
mov dword [esp + 0xb4], 0x59345bc5
mov dword [esp + 0xb8], 0x5dca5f2e
mov dword [esp + 0xbc], 0x51ca53c1
mov dword [esp + 0xc0], 0x55c857cf
mov dword [esp + 0xc4], 0x49df4b2f
mov dword [esp + 0xc8], 0x4d3f4f22
mov dword [esp + 0xcc], 0x41d443d7
mov dword [esp + 0xd0], 0x45d747da
mov dword [esp + 0xd4], 0x79e77be9
mov dword [esp + 0xd8], 0x7d357f12
mov dword [esp + 0xdc], 0x713b7325
mov dword [esp + 0xe0], 0x75337723
mov dword [esp + 0xe4], 0x69126b10
mov dword [esp + 0xe8], 0x6d386f3e
mov dword [esp + 0xec], 0x61376333
mov dword [esp + 0xf0], 0x65356737
mov dword [esp + 0xf4], 0x99fc9bcb
mov dword [esp + 0xf8], 0x9dda9fc9
mov dword [esp + 0xfc], 0x91d893da
mov dword [esp + 0x100], 0x95c497d7
mov dword [esp + 0x104], 0x89d98bda
mov dword [esp + 0x108], 0x8dd88fde
mov dword [esp + 0x10c], 0x81d683c4
mov dword [esp + 0x110], 0x85ce87c7
mov dword [esp + 0x114], 0xb9f3bbf0
mov dword [esp + 0x118], 0xbdd0bff4
mov word [esp + 0x11c], 0xb3b2
mov dword [esp + 0x11e], 0
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 0xa5
ja 0x41f18d
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add ecx, 0xd01d3308
xor ecx, edx
mov dword [esp + 0xa7c], ecx
mov ecx, dword [esp + 0xa7c]
add cl, 0xe6
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 0xa6
jb case.default.0x41f1ef
mov dword [esp + 0x4c], ebx
lea edx, [esp + 0x1006]
lea esi, [esp + 0x7c]
mov edi, edx
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x11c]
mov ecx, 1
lea edi, [esp + 0x10a6]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xe7e]
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0xf20]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x44574c]
push edi
call fcn.00409850
add esp, 4
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x44]
setb al
jmp dword [eax*4 + 0x44570c]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445744]
jmp dword [0x4457ac]
lea eax, [esp + 0x40]
push dword [esp + 0x20]
push 0
push 0x20019
push eax
push edi
call fcn.0043f140
add esp, 0x14
lea eax, [esp + 0x40]
push dword [esp + 0x20]
push 0
push 0x20019
push eax
push edi
call fcn.0043f140
add esp, 0x14
jmp dword [0x445740]
add edi, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov edx, dword [esp + 4]
je 0x41f2b8
cmp eax, edx
jae 0x41f2b8
movzx esi, cx
cmp esi, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp esi, 0x80
jb 0x41f280
mov edx, ecx
jmp 0x41f280
lea eax, [edi + 1]
mov dword [esp + 8], eax
push eax
mov esi, edx
call fcn.00409840
add esp, 4
mov ebp, eax
lea eax, [esp + 0x11ec]
cmp eax, esi
setb al
mov esi, ebp
mov ecx, edi
mov dword [esp + 0xc], edi
test edi, edi
jle 0x41f3b7
mov ebp, esi
test al, al
je 0x41f3b7
mov ebp, esi
mov eax, dword [esp + 0xc]
add eax, esi
mov dword [esp + 0x10], eax
add dword [esp + 8], esi
lea edx, [esp + 0x11ee]
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edx - 2]
test cx, cx
je 0x41f3b7
cmp cx, 0x7f
ja 0x41f330
mov byte [ebp], cl
mov edi, 1
jmp 0x41f3a0
mov eax, ebp
not eax
add eax, dword [esp + 8]
movzx ebx, cx
cmp eax, 2
jb 0x41f370
cmp ebx, 0x7ff
ja 0x41f370
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [ebp], al
and cl, 0x3f
or cl, 0x80
mov byte [ebp + 1], cl
mov edi, 2
jmp 0x41f3a0
xor edi, edi
cmp eax, 3
jb 0x41f3a0
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [ebp], al
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [ebp + 1], bl
and cl, 0x3f
or cl, 0x80
mov byte [ebp + 2], cl
mov edi, 3
nop
nop
nop
nop
nop
add ebp, edi
cmp ebp, dword [esp + 0x10]
jae 0x41f3b7
lea eax, [edx + 2]
cmp edx, dword [esp + 4]
mov edx, eax
jb 0x41f310
mov ecx, dword [esp + 0x2200]
mov byte [ebp], 0
mov dword [esp + 0x7c], 0xb6b5b466
mov dword [esp + 0x80], 0xb2808f8a
mov dword [esp + 0x84], 0xb5bfbf86
mov dword [esp + 0x88], 0x8ab49b78
mov dword [esp + 0x8c], 0x85868783
mov dword [esp + 0x90], 0x8d8fa040
mov dword [esp + 0x94], 0xb789b5b5
mov dword [esp + 0x98], 0x9e854a84
mov word [esp + 0x9c], 0x49b
mov dword [esp + 0x9e], 0
mov word [esp + 0xa2], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0x27
ja 0x41f498
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add eax, 0xb015ba11
xor eax, edx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0xca
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0x28
jb 0x41f450
lea eax, [esp + 0x7c]
push dword [esp + 0xc]
push esi
push eax
call fcn.0040a250
jmp dword [0x4457b4]
push esi
mov esi, eax
call fcn.00409850
mov eax, esi
add esp, 4
mov ecx, dword [case.0x41dc4d.10]
jmp ecx
and al, 1
add esp, 0x21ec
pop esi
pop edi
pop ebx
pop ebp
ret
int3
fadd qword [ecx]
sbb ah, 0x41
add byte [edx - 1996471844], al
fadd qword [ecx]
lodsb al, byte [esi]
fadd qword [ecx]
add ebp, ebx
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add bh, cl
hlt