Function at 0x4235cd
Capabilities:
Copy file
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x458
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x54], 0x19a61ba1
mov dword [esp + 0x58], 0xe549e7b3
mov dword [esp + 0x5c], 0xe110e357
mov dword [esp + 0x60], 0xed56ef4b
mov dword [esp + 0x64], 0xe9eaeb47
mov dword [esp + 0x68], 0
mov eax, 0x7b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x27]
mov ecx, eax
and ecx, edx
add ecx, ecx
add edx, eax
add edx, 0xf1c2d500
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
add cl, 0x99
mov byte [esp + eax - 0x27], cl
inc eax
cmp eax, 0x93
jne case.default.0x422a1f
lea ebx, [esp + 0x54]
lea ecx, [esp + 0x30]
push ebx
call fcn.00436d10
shr eax, 0x1f
jmp dword [eax*4 + 0x444ecc]
lea ecx, [esp + 0x30]
push 0x410
call fcn.00436f70
not eax
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x444ee4]
mov dword [esp + 0x54], 0x661d547f
mov dword [esp + 0x58], 0x5462077c
mov dword [esp + 0x5c], 0x68636d03
mov dword [esp + 0x60], 0x7d666a0f
mov dword [esp + 0x64], 0x1c756e7e
mov dword [esp + 0x68], 0x15706a77
mov dword [esp + 0x6c], 0x1e077a0a
mov dword [esp + 0x70], 0x1a611871
mov dword [esp + 0x74], 0x626c1272
mov dword [esp + 0x78], 0x2654f13
mov dword [esp + 0x7c], 0xb1426b63
mov word [esp + 0x80], 0
mov byte [esp + 0x82], 0
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0x54]
mov esi, ecx
and esi, 0x2f
mov edx, ecx
and edx, 0x10
xor edx, 0x7f4a5fd0
mov edi, ecx
or ecx, 0xb5a02f
add ecx, esi
sub edx, esi
xor edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add cl, al
add cl, 0x15
mov byte [esp + edi + 0x54], cl
mov ecx, edi
inc ecx
cmp ecx, 0x2f
jne case.default.0x422b10
lea eax, [esp + 0x48]
lea ecx, [esp + 0x30]
push 0
push 0x2b
push ebx
push eax
call fcn.00437890
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
xor eax, eax
cmp edi, esi
sete al
mov dword [esp + 0x18], esi
jmp dword [eax*4 + 0x444eec]
mov eax, esi
sub eax, edi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.004086b0
add esp, 4
jmp dword [0x444efc]
mov dword [esp + 0x2c], 0
lea ecx, [esp + 0x55]
mov dword [esp + 0x40], ecx
xor ecx, ecx
cmp edi, esi
setne cl
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
jmp dword [ecx*4 + 0x444f04]
jmp dword [0x444f18]
mov ecx, dword [esp + 0x2c]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x444f1c]
mov esi, dword [esp + 0x28]
jmp dword [0x444f6c]
xor ecx, ecx
jmp dword [0x444ee0]
mov ebx, ecx
lea ecx, [esp + 0x30]
call fcn.004370b0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add edi, 8
xor eax, eax
mov esi, dword [esp + 0x18]
cmp edi, esi
setne al
jmp dword [eax*4 + 0x444f04]
mov dword [esp + 4], edi
jmp dword [0x444f24]
lea ebx, [esp + 0x54]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
movzx eax, byte [esp + 0x54]
test al, al
je 0x422c0b
mov ecx, dword [esp + 0x40]
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x422c00
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x10], edx
mov al, 1
mov dword [esp + 0x2c], eax
jmp 0x422c27
lea ebx, [esp + 0x54]
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
push dword [esp + 0xc]
call fcn.00402120
add esp, 4
add edi, 8
xor eax, eax
cmp edi, esi
setne al
jmp dword [eax*4 + 0x444f04]
movzx eax, byte [edx + 1]
inc edx
xor esi, esi
test al, al
mov dword [esp + 8], edx
je 0x422c81
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x422c7f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x422c70
jmp 0x422c81
mov esi, ecx
xor eax, eax
test esi, esi
setne al
mov ecx, dword [esp + 8]
jmp dword [eax*4 + 0x444f4c]
mov edx, esi
sub edx, ecx
mov eax, edx
and eax, 0xfffffffc
mov ecx, edx
and ecx, 3
mov edi, edx
or edi, 3
imul edi, ecx
xor ecx, 3
imul ecx, eax
add edi, ecx
shr edi, 2
movzx eax, byte [esi - 1]
cmp eax, 0x3d
je 0x422cc2
cmp eax, 0x2e
jne 0x422cc3
dec edi
mov eax, dword [esp + 8]
movzx eax, byte [eax + edx - 2]
cmp eax, 0x3d
mov dword [esp + 0x14], edx
je 0x422cda
cmp eax, 0x2e
jne 0x422cdb
dec edi
mov eax, edi
xor eax, 1
mov ecx, edi
mov dword [esp + 0x44], edi
and ecx, 1
lea eax, [eax + ecx*2]
push eax
call fcn.004086b0
add esp, 4
mov dword [esp + 0x1c], eax
cmp esi, dword [esp + 8]
je 0x422dfb
xor ecx, ecx
mov esi, 2
jmp 0x422d28
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
lea eax, [esi + 4]
add esi, 2
cmp esi, edx
mov esi, eax
jae 0x422dfb
mov edi, ecx
mov ebx, dword [esp + 8]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.00419d50
add esp, 4
mov byte [esp + 0xc], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.00419d50
add esp, 4
mov ebx, eax
movzx ecx, byte [esp + 0xc]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x1c]
mov byte [ecx + edi], al
mov eax, edi
and eax, 1
xor edi, 1
lea ecx, [edi + eax*2]
mov edx, dword [esp + 0x14]
cmp esi, edx
jae 0x422d18
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 8]
movzx eax, byte [eax + esi]
push eax
call fcn.00419d50
add esp, 4
cmp al, 0x40
je 0x422d10
shl bl, 4
mov ecx, eax
shr cl, 2
and cl, 0xf
or cl, bl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
mov byte [edx + ebx], cl
and edi, 1
mov ecx, ebx
xor ecx, 1
lea edi, [ecx + edi*2]
lea ecx, [esi + 1]
mov edx, dword [esp + 0x14]
cmp ecx, edx
jae 0x422df4
mov ebx, eax
mov eax, dword [esp + 8]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00419d50
add esp, 4
cmp al, 0x40
je 0x422de9
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x1c]
mov byte [ecx + edi], al
inc edi
mov ecx, edi
mov edx, dword [esp + 0x14]
jmp 0x422d18
mov ecx, edi
jmp 0x422d18
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x1c]
mov byte [edi + eax], 0
push edi
call fcn.00401000
add esp, 4
mov esi, eax
jmp dword [0x444f54]
push edi
call fcn.004086c0
add esp, 4
mov dword [esp + 0xc], esi
push esi
call fcn.00401b20
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444f5c]
mov dword [esp + 0x20], 0x3748b4b7
mov ecx, 0x36180eb6
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x36180e96]
xor edx, ecx
mov esi, edx
not esi
or esi, 0xf187b671
add esi, edx
inc esi
mov ebx, esi
and ebx, 2
mov edi, esi
or esi, 2
imul esi, ebx
xor ebx, 2
and edi, 0xfd
imul edi, ebx
xor edx, 0x71
add edx, esi
add edx, edi
inc dl
mov byte [esp + ecx - 0x36180e96], dl
inc ecx
cmp ecx, 0x36180eba
jne 0x422e50
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.004018c0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444f64]
movzx ecx, byte [eax]
test cl, cl
mov edx, dword [esp + 0x10]
je 0x422edb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x422ed0
mov byte [edx], 0
mov byte [edx], 0x3a
lea ebx, [esp + 0x54]
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
mov byte [edx + 1], 0x20
add edx, 2
jmp 0x422bef
cmp eax, 0xc0000000
setae al
mov ecx, dword [esp + 0x20]
or ecx, dword [esp + 0x24]
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x444f34]
mov eax, 1
jmp dword [eax*4 + 0x444f3c]
xor eax, eax
jmp dword [eax*4 + 0x444f3c]
mov byte [esp + 0x453], 0
movzx eax, byte [esp + 0x54]
xor edx, edx
test al, al
je 0x422f61
mov ecx, ebx
nop
nop
cmp al, 0x2e
je 0x422f5f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x422f50
jmp 0x422f61
mov edx, ecx
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x444f44]
mov esi, dword [edi]
mov eax, dword [esp + 4]
mov edi, dword [eax + 4]
push 0x400
push 0
push ebx
call fcn.00408840
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x30]
push eax
push 0
push 0x400
push ebx
push edi
mov edi, dword [esp + 0x18]
push esi
call fcn.00437710
mov esi, dword [edi]
mov eax, dword [esp + 4]
mov edi, dword [eax + 4]
push 0x400
push 0
push ebx
call fcn.00408840
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x30]
push eax
push 0
push 0x400
push ebx
push edi
mov edi, dword [esp + 0x18]
push esi
call fcn.00437710
jmp dword [0x444f2c]
xor ecx, ecx
test edi, edi
jne 0x4230dc
jmp case.0x422a1f.4
mov eax, dword [esp + 0x10]
mov byte [eax], 0
mov dword [esp + 0x54], 0x5d5a5bb3
mov dword [esp + 0x58], 0x49595a5f
mov dword [esp + 0x5c], 0x4c505253
mov dword [esp + 0x60], 0x66729291
mov dword [esp + 0x64], 0x95ab6863
mov dword [esp + 0x68], 0x676d6269
mov dword [esp + 0x6c], 0x797ea179
mov word [esp + 0x70], 0xef7c
mov dword [esp + 0x72], 0
mov byte [esp + 0x76], 0
mov eax, 0x111a48d3
mov ecx, 0xeee5b72c
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x111a487f]
mov esi, eax
and esi, edx
add esi, esi
sub esi, edx
add esi, ecx
and esi, eax
add esi, esi
sub edx, esi
add edx, eax
mov esi, edx
xor esi, 0x55836c1f
mov edi, edx
or edi, 0xe0
and edi, esi
or edx, 0xaa7c93e0
and esi, edx
xor edx, edi
lea edx, [edx + esi*2]
inc dl
mov byte [esp + eax - 0x111a487f], dl
inc eax
dec ecx
cmp eax, 0x111a48f6
jne 0x423050
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
sub edx, esi
lea eax, [esp + 0x54]
mov ecx, dword [ebp + 8]
push edx
push esi
push eax
call fcn.00409730
mov ecx, eax
jmp dword [0x444f6c]
push esi
mov esi, ecx
call fcn.004086c0
mov ecx, esi
add esp, 4
and cl, 1
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
test edi, edi
je case.0x422a1f.4
cmp edi, esi
je case.0x422a1f.4
push edi
mov esi, ecx
call fcn.004086c0
mov ecx, esi
add esp, 4
jmp case.0x422a1f.4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push eax
sub esp, 0x2c
mov dword [ebp - 0x10], esp
push eax
mov dword [ebp - 0x18], esp
push eax
mov dword [ebp - 0x1c], esp
sub esp, 0x24
mov dword [ebp - 0x24], esp
push eax
mov dword [ebp - 0x20], esp
sub esp, 0x40
mov dword [ebp - 0x50], esp
sub esp, 0x44
mov dword [ebp - 0x2c], esp
push eax
mov dword [ebp - 0x34], esp
push eax
mov dword [ebp - 0x54], esp
push eax
mov ecx, esp
sub esp, 0x28
mov ebx, esp
sub esp, 8
mov edx, esp
sub esp, 8
mov esi, esp
sub esp, 8
mov edi, esp
sub esp, 0x24
mov eax, esp
jmp dword [0x444f80]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0xd8], ebx
mov dword [ebp - 0x48], edi
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
jmp dword [0x444f84]
mov dword [ebp - 0x7c], 0xe170e75f
mov dword [ebp - 0x78], 0xdd6ee36d
mov dword [ebp - 0x74], 0xd94adf7f
mov dword [ebp - 0x70], 0xd56adb4c
mov dword [ebp - 0x6c], 0xd15ad777
mov dword [ebp - 0x68], 0xcdd2d348
mov word [ebp - 0x64], 0
mov eax, 0x25fd9
mov ecx, 0x1fda026
nop
nop
nop
movzx edi, byte [ebp + eax - 0x26055]
lea esi, [edi + edi]
not esi
add esi, edi
and esi, eax
mov ebx, ecx
or ebx, edi
not ebx
lea edx, [ecx - 0x1fda000]
and edx, edi
or edx, ebx
or edx, esi
lea edi, [edx + 0x9f420c2]
mov ebx, edi
xor ebx, 0xfe
mov esi, edi
or esi, 1
and esi, ebx
mov ebx, edi
xor edi, 1
add edx, edi
add edx, 0x9f420c2
and ebx, 0xfe
sub edx, ebx
add edx, esi
mov byte [ebp + eax - 0x26055], dl
inc eax
dec ecx
cmp eax, 0x25ff3
jne 0x4231d0
nop
mov dword [ebp - 0x7c], 0xe170e75f
mov dword [ebp - 0x78], 0xdd6ee36d
mov dword [ebp - 0x74], 0xd94adf7f
mov dword [ebp - 0x70], 0xd56adb4c
mov dword [ebp - 0x6c], 0xd15ad777
mov dword [ebp - 0x68], 0xcdd2d348
mov word [ebp - 0x64], 0
mov eax, 0x25fd9
mov ecx, 0x1fda026
nop
nop
nop
nop
nop
nop
movzx edi, byte [ebp + eax - 0x26055]
lea esi, [edi + edi]
not esi
add esi, edi
and esi, eax
mov ebx, ecx
or ebx, edi
not ebx
lea edx, [ecx - 0x1fda000]
and edx, edi
or edx, ebx
or edx, esi
lea edi, [edx + 0x9f420c2]
mov ebx, edi
xor ebx, 0xfe
mov esi, edi
or esi, 1
and esi, ebx
mov ebx, edi
xor edi, 1
add edx, edi
add edx, 0x9f420c2
and ebx, 0xfe
sub edx, ebx
add edx, esi
mov byte [ebp + eax - 0x26055], dl
inc eax
dec ecx
cmp eax, 0x25ff3
jne 0x423270
jmp dword [0x444f8c]
mov dword [ebp - 0xd0], 0xd19ccf90
mov dword [ebp - 0xcc], 0xd59bd397
mov dword [ebp - 0xc8], 0xd983d79f
mov dword [ebp - 0xc4], 0xdd88db8c
mov dword [ebp - 0xc0], 0xe182df87
mov dword [ebp - 0xbc], 0xe5a1e3af
mov dword [ebp - 0xb8], 0xe9aee7a1
mov dword [ebp - 0xb4], 0xeda4eba3
mov dword [ebp - 0xb0], 0xf1b2efab
mov dword [ebp - 0xac], 0xf5a3f3a5
mov dword [ebp - 0xa8], 0xf9a2f7b2
mov dword [ebp - 0xa4], 0xfdb9fba1
mov dword [ebp - 0xa0], 0x1b9ffae
mov dword [ebp - 0x9c], 0x554035c
mov dword [ebp - 0x98], 0x96a0767
mov dword [ebp - 0x94], 0xd6d0b7e
mov dword [ebp - 0x90], 0x115b0f50
mov dword [ebp - 0x8c], 0x15751364
mov dword [ebp - 0x88], 0x19791777
mov word [ebp - 0x84], 0x1b18
mov byte [ebp - 0x80], 0
mov word [ebp - 0x82], 0
xor ecx, ecx
jmp dword [0x444f98]
xor eax, eax
cmp eax, 0x50
ja 0x4233dc
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x4d
xor cl, byte [ebp + eax - 0xd0]
add cl, 0x7f
mov byte [ebp + eax - 0xd0], cl
inc eax
cmp eax, 0x50
jbe 0x4233c0
lea eax, [ebp - 0x7c]
lea ecx, [ebp - 0xd0]
push eax
push ecx
call fcn.00434e80
add esp, 8
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x4d
xor al, byte [ebp + ecx - 0xd0]
add al, 0x7f
mov byte [ebp + ecx - 0xd0], al
inc ecx
cmp ecx, 0x51
jne case.0x422c8c.19
lea eax, [ebp - 0x7c]
lea ebx, [ebp - 0xd0]
push eax
push ebx
call fcn.00434e80
add esp, 8
xor ecx, ecx
jmp dword [0x444fa0]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444fa4]
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add edx, 2
cmp word [ecx], 0
jne 0x423450
sub ecx, eax
cmp ecx, 0xffffffd9
mov dword [ebp - 0x14], eax
jge 0x423473
mov ecx, 0xffffffff
jmp 0x423476
xor eax, eax
jmp 0x423f44
add ecx, 0x26
push ecx
call fcn.004086b0
add esp, 4
mov edi, eax
mov dword [ebp - 0xd0], 0x1fb919c4
mov dword [ebp - 0xcc], 0xe3501daf
mov dword [ebp - 0xc8], 0xe74fe14a
mov dword [ebp - 0xc4], 0xeb36e54f
mov dword [ebp - 0xc0], 0xef5de94f
mov dword [ebp - 0xbc], 0xf358ed5e
mov dword [ebp - 0xb8], 0xf75df159
mov dword [ebp - 0xb4], 0xfb40f506
mov dword [ebp - 0xb0], 0xff54f95c
mov word [ebp - 0xac], 0xfdfc
mov dword [ebp - 0xaa], 0
mov eax, 0xd1b85205
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebx]
lea edx, [eax + 0x2e47ae00]
and edx, ecx
or ecx, eax
not ecx
or ecx, edx
add ecx, 0x18999a1d
mov esi, ecx
xor esi, 0x7ffffffe
mov edx, ecx
or edx, 1
and edx, esi
add edx, edx
mov esi, edx
and esi, ecx
or edx, ecx
xor edx, 1
add edx, esi
mov byte [ebx], dl
inc ebx
dec eax
cmp eax, 0xd1b851db
jne 0x423500
mov eax, dword [ebp - 0x14]
movzx edx, word [eax]
mov ecx, edi
test dx, dx
je 0x423571
mov esi, eax
add esi, 2
mov ecx, edi
nop
nop
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 0x423560
mov word [ecx], 0
movzx edx, word [ebp - 0xd0]
test dx, dx
je 0x4235a3
lea esi, [ebp - 0xce]
mov ebx, dword [ebp - 0x1c]
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x423590
jmp 0x4235a6
mov ebx, dword [ebp - 0x1c]
mov word [ecx], 0
mov dword [ebp - 0x3c], edi
jmp dword [0x444fac]
push eax
call fcn.004086c0
add esp, 4
xor eax, eax
cmp word [edi], 0x2a
sete al
jmp dword [eax*4 + 0x444fb4]
xor eax, eax
cmp word [edi], 0x2a
sete al
jmp dword [eax*4 + 0x444fb4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], 0x89cc8bd1
mov dword [ecx + 4], 0x853b872c
mov dword [ecx + 8], 0x81308335
mov dword [ecx + 0xc], 0x9d299f3a
mov dword [ecx + 0x10], 0x993e9b25
mov dword [ecx + 0x14], 0x95279725
mov dword [ecx + 0x18], 0x91289326
mov dword [ecx + 0x1c], 0xed57ef27
mov dword [ecx + 0x20], 0xe960eb9e
mov dword [ecx + 0x24], 0xe55ce754
mov word [ecx + 0x28], 0xe3e4
mov dword [ecx + 0x2a], 0
mov byte [ecx + 0x2e], 0
mov eax, 0x79ead7a4
mov edi, 0x8615285c
mov dword [ebp - 0x14], edi
movzx esi, byte [ecx + eax - 0x79ead7a4]
lea edx, [eax - 1]
and edx, esi
mov ecx, edx
or ecx, 0xfffffffd
inc ecx
mov edi, edx
and edi, 0xfffffffd
imul edi, ecx
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
mov ebx, edx
sub ebx, edi
lea ecx, [edi + esi]
mov edi, dword [ebp - 0x14]
sub ebx, esi
add ebx, edi
or ebx, 0x9e69c9d0
add ebx, ecx
mov esi, ecx
sub esi, edx
sub ebx, edx
add ebx, eax
mov ecx, ebx
and ecx, 2
mov edx, ebx
or ebx, 2
imul ebx, ecx
xor ecx, 2
and edx, 0xfd
imul edx, ecx
lea ecx, [eax + esi]
dec ecx
xor ecx, 0xd0
add ecx, ebx
add ecx, edx
inc cl
mov edx, dword [ebp - 0x10]
mov byte [edx + eax - 0x79ead7a4], cl
mov ecx, dword [ebp - 0x10]
inc eax
dec edi
cmp eax, 0x79ead7d3
jne 0x423640
push 0
push ecx
mov edi, dword [ebp - 0x3c]
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ebx, dword [ebp - 0x1c]
push 0x60
push 3
push 0x120089
mov esi, dword [ebp - 0x18]
push esi
push edi
call fcn.0043d410
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444fbc]
xor esi, esi
xor edi, edi
jmp dword [0x44500c]
xor eax, eax
cmp edi, esi
sete al
jmp dword [eax*4 + 0x445014]
mov dword [ebp - 0x24], esi
mov eax, esi
mov dword [ebp - 0x14], edi
sub eax, edi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.004086b0
add esp, 4
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x30]
mov dword [edx], 0xf3a6f19d
mov dword [edx + 4], 0xff5dfd4b
mov dword [edx + 8], 0xfb4ef959
mov dword [edx + 0xc], 0xc776c585
mov dword [edx + 0x10], 0xc38ec170
mov dword [edx + 0x14], 0xcf72cd6d
mov dword [edx + 0x18], 0xcba7c969
mov dword [edx + 0x1c], 0xd785d570
mov dword [edx + 0x20], 0xd37fd16c
mov dword [edx + 0x24], 0xdf6bdd7d
mov dword [edx + 0x28], 0xdb6ed97c
mov dword [edx + 0x2c], 0x27852593
mov dword [edx + 0x30], 0x23962181
mov dword [edx + 0x34], 0x2f902d5a
mov dword [edx + 0x38], 0x2b842984
add dword [ebp - 0x2c], 0x3c
mov word [edx + 0x3c], 0x3534
mov dword [edx + 0x3e], 0
mov eax, 0x2254
mov ecx, 0xab
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [edx + eax - 0x2254]
mov esi, eax
and esi, edi
add esi, esi
mov edx, esi
not edx
and edx, eax
add edx, edi
and esi, ecx
sub edx, esi
add dl, 0x5c
mov esi, dword [ebp - 0x30]
mov byte [esi + eax - 0x2254], dl
mov edx, dword [ebp - 0x30]
inc eax
dec ecx
cmp eax, 0x2296
jne 0x4237c0
mov eax, dword [ebp - 0x50]
mov edi, eax
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, eax
add edi, 0x3c
mov ecx, 1
mov edx, dword [ebp - 0x2c]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov edi, eax
mov esi, dword [ebp - 0x34]
push esi
push 0
push 0
push 0x1e
push eax
push 0
call dword [0x44a4a8]
mov esi, dword [esi]
test esi, esi
jns 0x4239b6
mov eax, 0xffffffff
jmp 0x4239b9
push 0
push ebx
push dword [esi]
call fcn.0043d7c0
add esp, 0xc
not eax
shr eax, 0x1f
xor edx, edx
mov ecx, ebx
mov ebx, esi
xor esi, esi
xor edi, edi
jmp dword [eax*4 + 0x444fc4]
mov esi, dword [ecx]
lea eax, [esi + 1]
push eax
call fcn.004086b0
add esp, 4
push 0
push esi
mov dword [ebp - 0x5c], eax
push eax
push dword [ebx]
call fcn.0043d8c0
add esp, 0x10
not eax
shr eax, 0x1f
xor esi, esi
xor edi, edi
jmp dword [eax*4 + 0x444fcc]
mov eax, dword [ebp - 0x1c]
mov esi, dword [eax]
mov edi, dword [ebp - 0x5c]
mov byte [edi + esi], 0
push 0x20
call fcn.004086b0
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [ebp - 0x58], eax
mov ecx, eax
push esi
push edi
call fcn.00425da0
movzx eax, al
xor esi, esi
xor edi, edi
jmp dword [eax*4 + 0x444fd4]
mov edi, dword [ebp - 0x24]
mov dword [edi], 0x2d202a71
mov dword [edi + 4], 0x26285831
mov dword [edi + 8], 0x2d55596d
mov dword [edi + 0xc], 0x40672c3a
mov dword [edi + 0x10], 0x3a4d3020
mov dword [edi + 0x14], 0x484b6879
mov dword [edi + 0x18], 0x3530283d
mov word [edi + 0x1c], 0xa735
mov dword [edi + 0x1e], 0
mov word [edi + 0x22], 0
mov eax, 0x4bcd6e5f
mov ecx, 0xa0
nop
nop
nop
nop
nop
movzx edx, byte [edi + eax - 0x4bcd6e5f]
mov esi, edx
and esi, eax
add esi, esi
mov ebx, esi
not ebx
and ebx, eax
and esi, ecx
sub ebx, esi
add bl, dl
add bl, 0x25
mov byte [edi + eax - 0x4bcd6e5f], bl
inc eax
dec ecx
cmp eax, 0x4bcd6e83
jne 0x423940
mov ecx, dword [ebp - 0x58]
push edi
call fcn.00425f90
xor ecx, ecx
test eax, eax
setne cl
xor esi, esi
xor edi, edi
jmp dword [ecx*4 + 0x444fdc]
mov eax, dword [case.0x422c8c.34]
nop
nop
nop
jmp eax
jmp dword [0x444ffc]
mov ebx, dword [ebp - 0x58]
mov ecx, ebx
call fcn.004260f0
push ebx
call fcn.004086c0
add esp, 4
mov ebx, dword [ebp - 0x18]
xor edx, edx
jmp dword [0x445004]
lea eax, [esi + esi]
push eax
call fcn.004086b0
add esp, 4
mov ebx, eax
push dword [ebp - 0x34]
push esi
push eax
push 0x1e
push edi
push 0
call dword [0x44a4a8]
push 0x60
push 3
push 0x120089
mov esi, dword [ebp - 0x54]
push esi
mov dword [ebp - 0x50], ebx
push ebx
call fcn.0043d410
add esp, 0x14
not eax
shr eax, 0x1f
mov edi, dword [ebp - 0x14]
jmp dword [eax*4 + 0x44501c]
xor edx, edx
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x38]
jmp dword [0x4450e4]
mov dword [ebp - 0x18], edx
push dword [ebp - 0x50]
call fcn.004086c0
add esp, 4
mov edx, dword [ebp - 0x18]
mov eax, edx
and al, 1
movzx ecx, al
mov eax, edx
jmp dword [ecx*4 + 0x4450ec]
mov dword [ebp - 0x14], edi
jmp dword [0x4450f4]
mov byte [ebx], 0
mov dword [esi], 0x474241b1
mov dword [esi + 4], 0x435f5e55
mov dword [esi + 8], 0x484c4e51
mov dword [esi + 0xc], 0x6a7a96b3
mov dword [esi + 0x10], 0x9fb57461
mov dword [esi + 0x14], 0x7963667b
mov dword [esi + 0x18], 0x7376bf7b
mov word [esi + 0x1c], 0xd568
mov dword [esi + 0x1e], 0
mov byte [esi + 0x22], 0
mov eax, 0x54
mov ecx, 0x666052ab
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ebp - 0x38]
movzx esi, byte [edx + eax - 0x54]
mov edx, ecx
or edx, esi
mov edi, eax
and edi, esi
xor esi, ecx
sub edi, esi
add edi, ecx
not edx
or edx, edi
mov esi, edx
and esi, 0x5b
xor edx, 0x5b
lea edx, [edx + esi*2]
mov esi, dword [ebp - 0x38]
inc dl
mov byte [esi + eax - 0x54], dl
inc eax
dec ecx
cmp eax, 0x77
jne 0x423a90
mov eax, ebx
mov edx, dword [ebp - 0x20]
or eax, edx
mov ecx, dword [ebp + 8]
push eax
push edx
push esi
call fcn.00409730
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], 0
mov dword [esi], 0x474241b1
mov dword [esi + 4], 0x435f5e55
mov dword [esi + 8], 0x484c4e51
mov dword [esi + 0xc], 0x6a7a96b3
mov dword [esi + 0x10], 0x9fb57461
mov dword [esi + 0x14], 0x7963667b
mov dword [esi + 0x18], 0x7376bf7b
mov word [esi + 0x1c], 0xd568
mov dword [esi + 0x1e], 0
mov byte [esi + 0x22], 0
mov eax, 0x54
mov ecx, 0x666052ab
nop
nop
mov edx, dword [ebp - 0x38]
movzx esi, byte [edx + eax - 0x54]
mov edx, ecx
or edx, esi
mov edi, eax
and edi, esi
xor esi, ecx
sub edi, esi
add edi, ecx
not edx
or edx, edi
mov esi, edx
and esi, 0x5b
xor edx, 0x5b
lea edx, [edx + esi*2]
mov esi, dword [ebp - 0x38]
inc dl
mov byte [esi + eax - 0x54], dl
inc eax
dec ecx
cmp eax, 0x77
jne 0x423b30
mov eax, ebx
mov edx, dword [ebp - 0x20]
sub eax, edx
mov ecx, dword [ebp + 8]
push eax
push edx
push esi
call fcn.00409730
jmp dword [0x4450fc]
mov edi, dword [ebp - 0x14]
jmp dword [0x445104]
push dword [ebp - 0x20]
mov esi, eax
call fcn.004086c0
mov eax, esi
add esp, 4
and al, 1
mov ebx, dword [ebp - 0x24]
test edi, edi
jne 0x423f09
jmp 0x423f44
push 0
mov edi, dword [ebp - 0x4c]
push edi
push dword [esi]
call fcn.0043d7c0
add esp, 0xc
not eax
shr eax, 0x1f
xor edx, edx
mov dword [ebp - 0x18], 0
mov ebx, dword [ebp - 0x20]
jmp dword [eax*4 + 0x445024]
mov esi, dword [edi]
lea eax, [esi + 1]
push eax
call fcn.004086b0
add esp, 4
push 0
push esi
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x3c], eax
push eax
push dword [esi]
call fcn.0043d8c0
add esp, 0x10
not eax
shr eax, 0x1f
xor ecx, ecx
mov ebx, dword [ebp - 0x20]
jmp dword [eax*4 + 0x44502c]
mov esi, dword [edi]
mov edi, dword [ebp - 0x3c]
mov byte [edi + esi], 0
push 0x20
call fcn.004086b0
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [ebp - 0x44], eax
mov ecx, eax
push esi
push edi
call fcn.00425da0
movzx eax, al
mov dword [ebp - 0x18], 0
mov ebx, dword [ebp - 0x20]
jmp dword [eax*4 + 0x445034]
mov ebx, dword [ebp - 0xd8]
mov dword [ebx], 0x5b545a7f
mov dword [ebx + 4], 0x66546c47
mov dword [ebx + 8], 0x5b676b13
mov dword [ebx + 0xc], 0xc69604e
mov dword [ebx + 0x10], 0x221f1c2c
mov dword [ebx + 0x14], 0x21217a6f
mov dword [ebx + 0x18], 0x23111422
mov dword [ebx + 0x1c], 0x330d1473
mov word [ebx + 0x20], 0xa90d
mov dword [ebx + 0x22], 0
mov word [ebx + 0x26], 0
mov eax, 0x8ef55932
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + eax + 0x710aa6ce]
mov ecx, eax
and ecx, edx
mov edi, ecx
or edi, 0xfd
inc edi
mov esi, ecx
and esi, 0x7d
imul esi, edi
mov edi, ecx
xor edx, eax
lea edx, [edx + ecx*2]
and ecx, 2
or edi, 2
imul edi, ecx
sub esi, edi
add edx, esi
add dl, 6
mov byte [ebx + eax + 0x710aa6ce], dl
inc eax
cmp eax, 0x8ef5595a
jne 0x423cc0
mov ecx, dword [ebp - 0x44]
push ebx
call fcn.00425f90
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x18], 0
mov ebx, dword [ebp - 0x20]
jmp dword [ecx*4 + 0x44503c]
jmp dword [0x4450b4]
mov esi, dword [ebp - 0x44]
mov ecx, esi
call fcn.004260f0
push esi
call fcn.004086c0
add esp, 4
mov eax, dword [case.0x422a1f.87]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x54]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [ebp - 0x18], ecx
xor edx, edx
jmp dword [0x4450cc]
push dword [ebp - 0x3c]
call fcn.004086c0
xor edx, edx
add esp, 4
nop
nop
nop
nop
nop
nop
jmp dword [0x4450e0]
mov dword [ebp - 0x34], ebx
mov eax, dword [esi]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xd0], 0x94959697
mov byte [ebp - 0xcc], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [ebp + ecx - 0xd0]
mov edi, ecx
xor edi, 0x9f31c4a4
mov eax, edx
and edx, 6
sub edx, edi
mov edi, edx
and edi, esi
or edx, esi
mov esi, edi
not esi
lea ebx, [edi + esi*2]
inc ebx
and ebx, edx
mov edx, eax
add bl, 0x34
mov byte [ebp + ecx - 0xd0], bl
inc ecx
add edx, 2
cmp ecx, 5
jne 0x423da0
mov ecx, dword [0x44a4ac]
test ecx, ecx
mov ebx, dword [ebp - 0x34]
je 0x423f54
mov edx, dword [ebp - 0xd0]
xor esi, esi
mov edi, dword [0x44a4b0]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x423f4c
inc esi
cmp ecx, esi
jne 0x423e00
jmp 0x423f54
mov ebx, dword [ebp - 0x18]
xor edx, edx
jmp dword [0x445004]
push dword [ebp - 0x5c]
call fcn.004086c0
xor edx, edx
add esp, 4
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x14], esi
mov eax, dword [ebx]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xd0], 0x94959697
mov byte [ebp - 0xcc], 0
xor ecx, ecx
nop
nop
nop
movzx esi, byte [ebp + ecx - 0xd0]
mov edi, ecx
xor edi, 0x9f31c4a4
mov eax, edx
and edx, 6
sub edx, edi
mov edi, edx
and edi, esi
or edx, esi
mov esi, edi
not esi
lea ebx, [edi + esi*2]
inc ebx
and ebx, edx
mov edx, eax
add bl, 0x34
mov byte [ebp + ecx - 0xd0], bl
inc ecx
add edx, 2
cmp ecx, 5
jne 0x423e50
mov ecx, dword [0x44a4ac]
test ecx, ecx
je 0x423edc
mov edx, dword [ebp - 0xd0]
xor esi, esi
mov edi, dword [0x44a4b0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x423ec0
inc esi
cmp ecx, esi
jne 0x423eb0
jmp 0x423edc
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x423edc
push dword [ebp - 0x10]
push 4
push ecx
push dword [0x44a4b4]
call fcn.00439880
add esp, 0x10
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
jmp dword [0x44500c]
push dword [ebp - 0x3c]
call fcn.004086c0
add esp, 4
xor eax, eax
cmp edi, esi
sete al
jmp dword [eax*4 + 0x445014]
xor eax, eax
mov ebx, esi
test edi, edi
je 0x423f44
cmp edi, ebx
je 0x423f44
mov dword [ebp - 0x18], eax
mov esi, edi
jmp 0x423f27
add esi, 8
cmp esi, ebx
je 0x423f38
mov eax, dword [esi]
test eax, eax
je 0x423f20
push eax
call fcn.004086c0
add esp, 4
jmp 0x423f20
push edi
call fcn.004086c0
add esp, 4
mov eax, dword [ebp - 0x18]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x423f79
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
jmp dword [0x4450e4]
mov eax, edx
and al, 1
movzx ecx, al
mov eax, edx
jmp dword [ecx*4 + 0x4450ec]
jmp dword [0x445104]
push dword [ebp - 0x10]
push 4
push ecx
push dword [0x44a4b4]
call fcn.00439880
add esp, 0x10
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
jmp dword [0x4450e4]
add eax, 8
xor esi, esi
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor edi, edi
mov dword [ebp - 0x40], 0
xor ebx, ebx
xor edx, edx
jmp dword [eax*4 + 0x444fe4]
lea eax, [ecx + ecx]
not eax
add eax, ecx
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov dword [esi + ecx + 4], eax
mov edi, dword [ebp - 0x24]
add edi, 8
mov ecx, dword [ebp - 0x44]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov ebx, edi
mov edx, esi
jmp dword [eax*4 + 0x444fe4]
mov eax, dword [ecx]
mov esi, dword [ebp - 0x20]
mov dword [esi], eax
mov edi, ebx
sub edi, edx
mov dword [ebp - 0x14], edi
sar edi, 3
mov esi, edx
not esi
cmp ebx, dword [ebp - 0x40]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0xd4], edi
je 0x424022
and esi, ebx
mov edi, edx
mov eax, ebx
mov ecx, dword [ebp - 0x14]
jmp 0x4240d2
mov ecx, esi
mov eax, ebx
mov dword [ebp - 0x10], edx
xor eax, edx
mov esi, ebx
mov dword [ebp - 0x1c], ecx
and esi, ecx
lea ecx, [esi + esi]
sub ecx, eax
sar ecx, 3
mov edx, ecx
shr edx, 1
add edx, ecx
lea eax, [edi + 1]
cmp edx, eax
ja 0x424049
mov edx, eax
mov dword [ebp - 0x40], edx
lea eax, [edx*8]
push eax
call fcn.004086b0
add esp, 4
mov edi, eax
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x4240c2
mov dword [ebp - 0x28], esi
cmp edx, ebx
mov dword [ebp - 0x24], ebx
mov ebx, edi
je 0x4240ac
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov edi, edx
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, dword [ebp - 0x10]
mov ecx, edi
and ecx, dword [ebp - 0x1c]
sub ecx, esi
mov esi, dword [edx]
mov dword [ebx + ecx], esi
mov esi, dword [edx + 4]
mov dword [ebx + ecx + 4], esi
mov dword [edx], 0
add edi, 8
add eax, 0xfffffff8
add edx, 8
cmp edx, dword [ebp - 0x24]
jne 0x424080
push dword [ebp - 0x10]
call fcn.004086c0
add esp, 4
mov edi, ebx
mov esi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x40]
lea eax, [edi + eax*8]
mov dword [ebp - 0x40], eax
mov eax, edi
mov ecx, dword [ebp - 0x14]
add eax, ecx
mov dword [ebp - 0x24], eax
mov eax, ebx
not eax
and eax, edx
sub esi, eax
cmp esi, ecx
mov dword [ebp - 0x28], esi
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x14], edi
jae 0x424160
mov eax, dword [ebp - 0xd4]
lea edx, [edx + eax*8]
sub edx, ebx
lea ebx, [edi + esi]
lea eax, [edi + esi]
add eax, 8
cmp edx, 8
jle 0x424116
push edx
push ebx
push eax
call fcn.00408730
add esp, 0xc
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
jmp 0x424160
mov ecx, edx
shr ecx, 2
mov esi, ebx
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, ebx
mov ebx, edx
and ebx, 0xfffffffc
add eax, ebx
add ebx, ecx
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, ebx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov edi, dword [ebp - 0x14]
test dl, 1
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
je 0x424160
and edx, 2
movzx ecx, byte [ebx + edx]
mov byte [eax + edx], cl
mov ecx, dword [ebp - 0x20]
nop
nop
nop
mov ebx, dword [ecx]
mov dword [edi + esi], 0
mov dword [edi + esi + 4], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + eax], 0
lea eax, [eax + 1]
jne 0x424180
push eax
mov esi, eax
call fcn.004086b0
add esp, 4
mov ecx, dword [ebp - 0x28]
mov dword [edi + ecx], eax
mov ecx, esi
shr ecx, 2
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov dword [ebp - 0x10], esi
mov edx, esi
and edx, 0xfffffffc
add eax, edx
add edx, ebx
mov ecx, esi
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, dword [ebp - 0x10]
inc cl
test cl, 1
jne 0x4241ee
mov esi, dword [ebp - 0x10]
mov ecx, esi
and ecx, 2
movzx edx, byte [edx + ecx]
mov byte [eax + ecx], dl
mov ecx, 0xffffffff
cmp esi, 1
je 0x423fc0
mov ecx, 0xffffffff
mov eax, 1
mov dword [ebp - 0x1c], ebx
nop
nop
nop
nop
nop
movzx edi, byte [ebx + eax - 1]
xor edi, ecx
mov ecx, edi
shr ecx, 1
mov edx, edi
and edx, 1
neg edx
and edx, 0xedb88320
xor edx, ecx
mov esi, edx
shr esi, 1
mov ecx, edi
shl ecx, 0x1e
sar ecx, 0x1f
and ecx, 0xedb88320
xor ecx, esi
mov ebx, edi
shl ebx, 0x1d
sar ebx, 0x1f
and ebx, 0x76dc419
mov esi, edi
shl esi, 0x1c
sar esi, 0x1f
and esi, 0xedb8832
xor esi, ebx
mov ebx, edi
shl ebx, 0x1b
sar ebx, 0x1f
and ebx, 0x1db71064
shl edi, 0x1a
sar edi, 0x1f
and edi, 0x3b6e20c8
xor edi, ebx
mov ebx, dword [ebp - 0x1c]
xor edi, esi
mov esi, ecx
shr esi, 6
xor edi, esi
shl edx, 0x1a
sar edx, 0x1f
and edx, 0x76dc4190
xor edx, edi
shl ecx, 0x1a
sar ecx, 0x1f
and ecx, 0xedb88320
xor ecx, edx
inc eax
cmp dword [ebp - 0x10], eax
jne 0x424200
jmp 0x423fc0
add eax, 8
mov dword [ebp - 0x18], 0
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
mov ebx, dword [ebp - 0x20]
jmp dword [eax*4 + 0x445044]
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x445044]
mov edx, dword [esi]
cmp dword [esi + 0x18], 3
mov edi, 0
jne case.default.0x4242ee
mov edi, dword [esi + 0x10]
test edx, edx
setne al
test edi, edi
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44504c]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x34], ebx
mov eax, edi
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x42432b
sub ecx, edi
inc ecx
shr ecx, 1
mov dword [ebp - 0x4c], ecx
lea eax, [ecx + 1]
push eax
call fcn.004086b0
mov edx, edi
add esp, 4
movsx ebx, byte [edi]
xor ecx, ecx
test ebx, ebx
setne cl
mov dword [ebp - 0x28], eax
jmp dword [ecx*4 + 0x445054]
mov eax, dword [ebp - 0x10]
mov byte [eax], cl
inc eax
movsx ebx, byte [esi]
xor ecx, ecx
test ebx, ebx
setne cl
mov edx, esi
jmp dword [ecx*4 + 0x445054]
mov dword [ebp - 0x10], eax
lea eax, [edx + 1]
mov esi, ebx
not esi
mov ecx, esi
and ecx, 0xffffffdf
lea edi, [ecx + 0x67]
cmp edi, 5
ja case.default.0x42438d
mov edi, edx
mov esi, ecx
and esi, 1
not ecx
and ecx, 6
sub ecx, esi
add ecx, 0xa
movsx ebx, byte [eax]
xor edx, edx
test ebx, ebx
setne dl
mov esi, eax
jmp dword [edx*4 + 0x44505c]
lea ecx, [ebx - 0x30]
mov edi, edx
cmp ecx, 0xa
jb 0x4243c0
mov ecx, 0xffffffff
jmp 0x4243ca
and esi, 0x30
and ebx, 0xffffffcf
sub ebx, esi
mov ecx, ebx
mov esi, eax
movsx ebx, byte [eax]
xor edx, edx
test ebx, ebx
setne dl
jmp dword [edx*4 + 0x44505c]
shl ecx, 4
add edi, 2
mov dword [ebp - 0x2c], edi
mov esi, ebx
not esi
mov edx, esi
and edx, 0xffffffdf
lea edi, [edx + 0x67]
cmp edi, 5
mov eax, dword [ebp - 0x10]
ja case.default.0x42441b
mov esi, edx
and esi, 1
not edx
and edx, 6
sub edx, esi
add edx, 0xa
or edx, ecx
mov byte [eax], dl
inc eax
mov edx, dword [ebp - 0x2c]
movsx ebx, byte [edx]
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x445054]
mov edi, dword [ebp - 0x2c]
lea edx, [ebx - 0x30]
cmp edx, 0xa
jb 0x424442
mov ebx, 0xffffffff
jmp 0x42444a
and esi, 0x30
and ebx, 0xffffffcf
sub ebx, esi
mov edx, edi
or ebx, ecx
mov byte [eax], bl
inc eax
movsx ebx, byte [edi]
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x445054]
mov byte [eax], 0
push 0
push 0x10
push 0
push dword [ebp - 0x1c]
call fcn.00426190
add esp, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x2c], edx
mov ecx, dword [case.0x42445b.58]
mov dword [ebp - 0x1c], 0
xor eax, eax
mov edi, dword [ebp - 0x14]
cmp edi, dword [ebp - 0x24]
setne al
mov ebx, dword [case.0x422a1f.112]
jmp dword [eax*4 + 0x445064]
add edi, 8
xor eax, eax
cmp edi, dword [ebp - 0x24]
setne al
jmp dword [eax*4 + 0x445064]
mov esi, dword [edi + 4]
mov eax, esi
shr eax, 0x1c
shl esi, 4
or esi, 1
xor eax, dword [ebp - 0x2c]
xor esi, dword [ebp - 0x10]
xor edx, edx
or esi, eax
sete dl
jmp dword [edx*4 + 0x44506c]
jmp ebx
mov eax, 1
jmp dword [eax*4 + 0x445094]
jmp ecx
mov eax, dword [edi]
mov dword [ebp - 0x1c], eax
xor eax, eax
jmp dword [eax*4 + 0x445094]
xor eax, eax
mov edx, dword [ebp - 0x1c]
test edx, edx
setne al
jmp dword [eax*4 + 0x44509c]
mov ebx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
jmp dword [0x4450ac]
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x4c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
mov ebx, dword [ebp - 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x4245a1
mov esi, dword [ebp - 0xdc]
mov dword [esi], eax
mov dword [esi + 4], edx
mov edi, dword [ebp - 0x48]
mov dword [edi], 0
mov dword [edi + 4], 0
push 0x14e20a34
push dword [0x44a4b8]
mov dword [ebp - 0x1c], edx
call fcn.0043ca10
add esp, 8
push edi
push 1
push 0
push 0
push esi
push 0
push dword [ebp - 0x60]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4450a4]
mov esi, dword [ebp - 0x30]
jmp dword [0x4450ac]
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx]
test al, al
je 0x4245cd
inc edx
mov ecx, dword [ebp - 0x48]
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x4245c0
jmp 0x4245d0
mov ecx, dword [ebp - 0x48]
mov word [ebx], 0x203a
mov eax, ebx
add eax, 2
mov edi, dword [ecx]
test edi, edi
je 0x42460b
mov ecx, dword [ecx + 4]
mov edx, edi
and edx, 3
je 0x42460f
xor esi, esi
nop
nop
nop
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + esi], bl
inc esi
cmp edx, esi
jne 0x4245f0
add eax, esi
mov edx, edi
sub edx, esi
mov ebx, eax
jmp 0x424611
mov ebx, eax
jmp 0x42465b
mov edx, edi
cmp edi, 4
jb 0x42465b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
lea esi, [eax + 4]
mov byte [eax + 3], bl
mov ebx, esi
mov eax, esi
add edx, 0xfffffffc
jne 0x424620
mov byte [ebx], 0xa
inc ebx
push 0xbe5098bb
push dword [0x44a4a0]
call fcn.0043ca10
add esp, 8
mov ecx, dword [ebp - 0x48]
push dword [ecx + 4]
call eax
mov al, 1
mov dword [ebp - 0x18], eax
mov esi, dword [ebp - 0x30]
jmp dword [0x4450ac]
push dword [ebp - 0x28]
call fcn.004086c0
add esp, 4
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x445044]
sub al, byte [edx]
mov al, byte [0xa000422b]
sub eax, dword [edx]
mov al, byte [0xa000422b]
sub eax, dword [edx]
test al, 0x2b
inc edx
add byte [eax + 0x4200422b], ch
sub al, byte [edx]
and byte [ebx], ch
inc edx
add al, ah
das
inc edx
add byte [eax], ah
sub eax, dword [edx]
and byte [ebx], ch
inc edx
add byte [ebx + ebp], bh
inc edx
add byte [eax], ah
sub eax, dword [edx]
jo 0x444f31
inc edx
add ch, dl
sub eax, dword [edx]
jo 0x444f39
inc edx
add byte [eax + 0x2b], dh
inc edx
add byte [eax + 0x2b], dh
inc edx
add byte [esi + 0x2b], dh
inc edx
add byte [eax - 0x10ffbdd5], cl
das
inc edx
add byte [ebp + 0x7000422f], ah
das
inc edx
add byte [eax], al
das
inc edx
add byte [eax + 0x2f], dh
das
inc edx
add byte [edi], bl
das
inc edx
add byte [eax], dh
das
inc edx
add al, al
sub eax, dword [edx]
cmp dword [edi], ebp
inc edx
add al, al
sub eax, dword [edx]
push eax
sub al, 66
add al, al
sub eax, dword [edx]
xchg ebx, eax
sub al, 66
add byte [eax], bl
inc edx
add byte [ecx], ah
inc edx
add byte [ebx], bl
sub al, 0x42
add byte [esi + ebp], bh
inc edx
add bh, bl
sub eax, dword [edx]
mov ch, 0x2e
inc edx
add byte [eax + esi + 0x30c90042], bh
inc edx
add byte [eax], ah
xor dword [edx], eax
adc dh, byte [ecx]
inc edx
add byte [eax], ah
xor dword [edx], eax
outsd dx, dword [esi]
xor dword [edx], eax
xor byte [edx], dh
inc edx
add byte [ebx - 0x2affbdcf], dl
xor al, byte [edx]
xor byte [edx], dh
inc edx
add byte [ecx + 0x4233], dh
xor al, 0x42
add byte [eax], al
xor al, 0x42
add byte [0x43004234], dh
xor al, 0x42
add byte [esp + esi + 0x42], ch
add byte [ebp + esi + 0x35cd0042], dh
inc edx
add dl, bl
inc edx
add ch, bl
xor eax, 0x36fc0042
inc edx
add byte [eax + 0x38], al
inc edx
add byte [edi], ch
inc edx
add byte [ebx + 0x38], ah
inc edx
add byte [edi], dl
inc edx
add byte [edx - 0x6dffbdc8], dl
cmp dword [edx], eax
jmp 0x445012
inc edx
add byte [edi + esi], dl
inc edx
add byte [ecx], al
aas
inc edx
add ah, bh
cmp dword [edx], eax
cmpsd dword [esi], dword es:[edi]
cmp eax, dword [edx]
jbe 0x445063
inc edx
add bh, cl
cmp eax, dword [edx]
push edx
cmp eax, 1006764098
inc edx
add byte [edi + 0x3c5e0042], ah
inc edx
add byte [edi + 0x429f0042], ah
inc edx
add byte [edi + 0x42cf0042], ah
inc edx
add byte [edx + eax*2 + 0x42f50042], bh
inc edx
add byte [edx + 0x44], ah
inc edx
add byte [ecx + 0x43], bl
inc edx
add byte [eax + 0x43], al
inc edx
add ch, bl
inc ebx
inc edx
add byte [eax], dl
inc ebp
inc edx
add dl, al
inc esp
inc edx
add al, dh
inc esp
inc edx
add byte [eax], al
inc ebp
inc edx
add byte [eax], al
inc ebp
inc edx
add byte [eax], al
inc ebp
inc edx
add byte [edx], al
inc ebp
inc edx
add byte [eax], al
inc ebp
inc edx
add al, dh
inc esp
inc edx
add al, dh
inc esp
inc edx
add al, dh
inc esp
inc edx
add dl, dh
inc esp
inc edx
add byte [eax], dl
inc ebp
inc edx
add byte [eax + 0x21004244], dh
inc ebp
inc edx
add byte [0xa8004245], ch
inc ebp
inc edx
add byte [ecx - 0x77ffbdbb], dh
inc esi
inc edx
add byte [edx + eax*2 + 0x3d2a0042], bh
inc edx
add byte [0x5000423d], bh
cmp eax, 0x3d500042
inc edx
add byte [edx + 0x3d], dl
inc edx
add byte [eax + 0x3d], dl
inc edx
add byte [ebp + 0x3d], bl
inc edx
add byte [eax + 0x3d], dh
inc edx
add byte [eax + 0x3d], dh
inc edx
add byte [eax + 0x3d], dh
inc edx
add byte [eax + 0x3d], dh
inc edx
add byte [esi + 0x3d], dh
inc edx
add byte [edx], cl
cmp al, byte [edx]
arpl word [edi], di
inc edx
add byte [ebx + 0x3f], dh
inc edx
add byte [ebx], ch
cmp al, byte [edx]
loopne 0x445130
inc edx
add byte [edx + edi], dh
inc edx
add byte [ebp + 0x3b], bh
inc edx
add al, ah
cmp al, byte [edx]
xchg byte [ebx], bh
inc edx
add byte [ebp + 0x100423b], dl
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esp + esi + 0x42], ch
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 byte [esp + edx*2 + 0x49600042], al
inc edx
add dh, al
dec ecx
inc edx
add byte [eax + 0x49], ah
inc edx
add byte [eax + 0x49], ah
inc edx
add byte [esi + 0x49], ah
inc edx
add byte [eax + 0x49], ah
inc edx
add byte [ecx + ecx*2 + 0x42], ch
add byte [eax + 0x49], bh
inc edx
add byte [ecx + 0x4b], ch
inc edx
add byte [eax - 0x40ffbdb5], dl
push eax
inc edx
add byte [ebx - 0x70ffbdb5], bh
push eax
inc edx
add bl, dh
dec ebx
inc edx
add byte [edi + 0x1c004250], cl
dec esp
inc edx
add byte [ecx], al
dec edi
inc edx
add byte [edx], bl
dec edi
inc edx
add byte [ebx], bl
push eax
inc edx
add byte [eax + edx*2], ah
inc edx
add byte [eax + 0x50], dl
inc edx
add byte [eax + 0x50], dl
inc edx
add byte [edx + 0x50], dl
inc edx
add byte [eax + 0x50], dl
inc edx
add byte [eax + 0x50], bl
inc edx
add byte [edi + 0x50], ah
inc edx
add byte [eax + 0x6d004250], al
push eax
inc edx
add byte [eax - 0x70ffbdb0], al
push eax
inc edx
add byte [ebp - 0x40ffbdb0], dl
push eax
inc edx
add byte [eax - 0x64ffbdb0], dh
push eax
inc edx
add byte [edi - 0x4fffbdb0], bh
push eax
inc edx
add byte [ecx + 0x4b], dh
inc edx
add byte [ebp + 0x51], bl
inc edx
add byte [eax + 0x67004249], dh
push ecx
inc edx
add byte [edi], ch
push esp
inc edx
add byte [eax + 0x54], al
inc edx
add byte [esi + 0x54], al
inc edx
add byte [eax - 0x6fffbdb7], dh
dec ecx
inc edx
add byte [esi + 0x49], bh
inc edx
add byte [eax - 0x69ffbdb7], dl
dec ecx
inc edx
add byte [edx - 0xbffbda5], dl
push ebp
inc edx
add byte [eax], al
push esi
inc edx
add byte [eax], al
push esi
inc edx
add byte [eax], al
push esi
inc edx
add byte [edx], al
push esi
inc edx
add byte [esi + edx*2], cl
inc edx
add byte [eax], ah
push esi
inc edx
add byte [esi], dh
push esi
inc edx
add byte [eax], ah
push esi
inc edx
add dh, cl
pop ebx
inc edx
add byte [esi + edx*2 + 0x42], al
add byte [ecx + 0x5d], cl
inc edx
add byte [ebx + 0x5d], ch
inc edx
add byte [edx], ah
pop ebp
inc edx
add byte [ecx + 0x5d], cl
inc edx
add byte [ebp + 0x3000425b], dh
pop ebp
inc edx
add byte [eax], dl
push edi
inc edx
add byte [ebx + ebx*2 + 0x42], dh
add byte [ebp + 0x57], al
inc edx
add byte [eax + 0x55004257], ah
push edi
inc edx
add byte [eax + 0x65004257], ah
push edi
inc edx
add byte [eax + 0x75004257], ah
push edi
inc edx
add byte [eax + 0x1004257], ah
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebp + 0x57], dh
inc edx
add byte [ebp - 0x5fffbda9], al
push edi
inc edx
add byte [eax - 0x4fffbda9], dh
push edi
inc edx
add byte [eax + 0x50004257], dh
push esi
inc edx
add ah, bh
push edi
inc edx
add byte [edx], al
pop eax
inc edx
add byte [edx + 0x3700425a], dh
pop eax
inc edx
add byte [eax + 0x58], al
inc edx
add byte [eax + 0x58], ah
inc edx
add byte [eax + 0x58], ah
inc edx
add byte [eax - 0x6bffbda8], cl
pop edx
inc edx
add byte [eax - 0x38ffbda8], bl
pop eax
inc edx
add al, ah
pop eax
inc edx
add al, ah
pop eax
inc edx
add al, ah
pop eax
inc edx
add dh, ah
pop eax
inc edx
add al, ah
pop eax
inc edx
add byte [ebp - 0x6bffbda6], al
pop edx
inc edx
add byte [edx - 0x59ffbda6], bl
pop edx
inc edx
add byte [eax - 0x4fffbda6], dh
pop edx
inc edx
add byte [edx - 0x4fffbda6], dh
pop edx
inc edx
add byte [edx + 0x5b], al
inc edx
add byte [eax + 0x5b], dl
inc edx
add byte [eax + 0x5b], dl
inc edx
add byte [eax + 0x5b], dl
inc edx
add byte [eax + 0x56], dl
inc edx
add byte [eax + 0x5b], dl
inc edx
add byte [eax - 0x6fffbda5], dl
pop ebx
inc edx
add byte [ebp - 0x6fffbda5], dh
pop ebx
inc edx
add byte [ebx - 0x31ffbda5], bh
pop ebx
inc edx
add byte [edx + 0xc00425c], dh
pop esp
inc edx
add byte [edx - 0x4dffbda5], dl
pop esp
inc edx
add byte [eax - 0x5bffbda5], bl
pop ebx
inc edx
add byte [eax], al
add byte [eax], al
add byte [ecx], dh
js 0x4453a2
invalid
add byte [ecx], ch
js 0x4453a6
add byte [edx + edi*2 + 0x6f], ah
add byte [edi + 0x49006f7d], dh
jle 0x4453b2
add ch, bl
jge 0x4453b6
add byte [edi + 0x2e006f7e], bh
jg 0x4453be
add byte [esi], bl
jl 0x4453c2
add byte [esi], bl
jl 0x4453c6
add byte [edx + 0x4006f7f], cl
sub dword [edi], 0x6f812c
sub al, byte [ecx + 0x7a5f006f]
outsd dx, dword [esi]
add ch, ch
sub byte [edi], 0x92
sub byte [edi], 0x5d
sub dword [edi], 0x4c
xchg byte [edi], ch
inc edi
xchg byte [edi], ch
test byte [ebp - 0x727bff91], cl
outsd dx, dword [esi]
add dl, dl
lea ebp, [edi]
mov ah, 0x8e
outsd dx, dword [esi]
add byte [esi + ecx*4], dl
outsd dx, dword [esi]
add byte [esi + ecx*4], dl
outsd dx, dword [esi]
add byte [edx], ch
mov gs, word [edi]
adc eax, 0x70006f8f
invalid
outsd dx, dword [esi]
add byte [edi + ecx*4 + 0x6f], bh
outsd dx, dword [esi]
add byte [ecx - 0x72], cl
outsd dx, dword [esi]
add byte [edi + ecx*4 + 0x6f], bh
add byte [ebp + ecx*4 + 0x6f], ah
outsd dx, dword [esi]
add ch, al
push es
sub eax, 0x6f8d6400
add dl, al
invalid
outsd dx, dword [esi]
add cl, bl
invalid
outsd dx, dword [esi]
add byte [edi + 0x37006f9b], dh
outsd dx, dword [esi]
add byte [edi], dh
lea ebp, [edi]
push 0xb7006f9a
wait
outsd dx, dword [esi]
add byte [edi + 0x50006f9b], dh
mov al, byte [0x9f84006f]
outsd dx, dword [esi]
add byte [edi + edx*4 - 0x685bff91], ah
outsd dx, dword [esi]
add byte [edx - 0x45ff9069], bh
xchg edi, eax
outsd dx, dword [esi]
add ah, ah
xchg edi, eax
outsd dx, dword [esi]
add dh, ah
xchg edi, eax
outsd dx, dword [esi]
add dl, bh
xchg edi, eax
outsd dx, dword [esi]
add ch, bh
xchg edi, eax
outsd dx, dword [esi]
add byte [edx - 0x67], ah
outsd dx, dword [esi]
add byte [ecx - 0x67], bl
outsd dx, dword [esi]
add byte [edi - 0xdff9067], bl
cdq
outsd dx, dword [esi]
add byte [edx - 0x69], ah
outsd dx, dword [esi]
add bl, dh
invalid