Function at 0x42d482
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x460
mov esi, esp
push eax
sub esp, 0x1c
mov ebx, esp
mov dword [esi + 0x48], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x5c], 0xcf5ac95f
mov dword [esi + 0x60], 0xc3a3cda9
mov dword [esi + 0x64], 0xc794c15d
mov dword [esi + 0x68], 0xfb72c5a1
mov dword [esi + 0x6c], 0xfffef99d
mov word [esi + 0x70], 0
mov byte [esi + 0x72], 0
mov eax, 0x52
mov ecx, 0xad
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0xbd
mov edx, eax
and edx, 0x42
or edx, edi
xor dl, byte [esi + eax + 0xa]
xor dl, 0xbd
add dl, 0x66
mov byte [esi + eax + 0xa], dl
inc eax
dec ecx
cmp eax, 0x69
jne case.default.0x42c845
lea eax, [esi + 0x5c]
lea ecx, [esi + 0x3c]
push eax
call fcn.0043f6d0
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x44dea8]
lea ecx, [esi + 0x3c]
push 0x410
call fcn.0043f960
not eax
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x44deb0]
mov dword [esi + 0x38], ebx
mov dword [esi + 0x5c], 0xfaa5ecfb
mov dword [esi + 0x60], 0xd4f6dbfc
mov dword [esi + 0x64], 0xc0cfc5e7
mov dword [esi + 0x68], 0xfdcacee3
mov dword [esi + 0x6c], 0xdcedeafa
mov dword [esi + 0x70], 0xd5e8eeeb
mov dword [esi + 0x74], 0xd2d3f6ee
mov dword [esi + 0x78], 0xde89d0f9
mov dword [esi + 0x7c], 0xfef4eef6
mov dword [esi + 0x80], 0xa6fd93ef
mov dword [esi + 0x84], 0x39ee8787
mov byte [esi + 0x88], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x19
xor al, byte [esi + ecx + 0x5c]
add al, 0x83
mov byte [esi + ecx + 0x5c], al
inc ecx
cmp ecx, 0x2d
jne case.default.0x42c905
lea eax, [esi + 0x50]
lea ecx, [esi + 0x3c]
push 0
push 0x2b
lea edx, [esi + 0x5c]
push edx
push eax
call fcn.004405b0
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0x54]
xor eax, eax
cmp edx, ebx
sete al
jmp dword [eax*4 + 0x44deb8]
mov ecx, ebx
not ecx
and ecx, edx
mov eax, edx
not eax
and eax, ebx
sub eax, ecx
sar eax, 3
mov edi, edx
mov edx, eax
and edx, 0x421
mov ecx, eax
or eax, 0x421
imul eax, edx
xor edx, 0x421
and ecx, 0xfffffbde
imul ecx, edx
add eax, ecx
push eax
call fcn.0040c700
mov edx, edi
add esp, 4
mov dword [esi + 0x34], 0
xor ecx, ecx
cmp edi, ebx
setne cl
mov dword [esi + 0x30], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebx
jmp dword [ecx*4 + 0x44dec0]
add edx, 8
xor eax, eax
mov ebx, dword [esi + 0x10]
cmp edx, ebx
setne al
jmp dword [eax*4 + 0x44dec0]
jmp dword [0x44ded4]
mov eax, dword [edx]
mov dword [esi + 0x1c], eax
mov ebx, dword [edx + 4]
lea eax, [esi + 0x5c]
push 0x400
push 0
push eax
mov edi, edx
call fcn.0040c790
add esp, 0xc
lea eax, [esi + 0x20]
lea ecx, [esi + 0x3c]
push eax
push 0
push 0x400
lea eax, [esi + 0x5c]
push eax
push ebx
push dword [esi + 0x1c]
call fcn.004403f0
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x1c], edx
mov edi, dword [edx]
mov ebx, dword [edx + 4]
push 0x400
push 0
lea eax, [esi + 0x5c]
push eax
call fcn.0040c790
add esp, 0xc
lea eax, [esi + 0x20]
lea ecx, [esi + 0x3c]
push eax
push 0
push 0x400
lea eax, [esi + 0x5c]
push eax
push ebx
push edi
call fcn.004403f0
mov edx, dword [esi + 0x1c]
jmp dword [0x44dedc]
cmp eax, 0xc0000000
setae al
mov ecx, dword [esi + 0x20]
or ecx, dword [esi + 0x24]
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44dee0]
mov eax, 1
jmp dword [eax*4 + 0x44def8]
xor eax, eax
jmp dword [eax*4 + 0x44def8]
mov byte [esi + 0x45b], 0
movzx eax, byte [esi + 0x5c]
xor edi, edi
test al, al
je 0x42ca71
lea ecx, [esi + 0x5c]
nop
nop
nop
cmp al, 0x2e
je 0x42ca6f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42ca60
jmp 0x42ca71
mov edi, ecx
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x44df00]
movzx eax, byte [edi + 1]
inc edi
xor ebx, ebx
test al, al
je 0x42caa1
mov ecx, edi
nop
nop
nop
nop
cmp al, 0x2e
je 0x42ca9f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42ca90
jmp 0x42caa1
mov ebx, ecx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x44df08]
mov dword [esi], ebx
mov ecx, ebx
sub ecx, edi
mov ebx, ecx
xor ebx, 1
lea eax, [ecx + ecx]
mov edx, eax
and edx, 0xfffffffc
sub edx, ebx
mov dword [esi + 0x18], ecx
lea ebx, [ecx + ecx*2]
shr ebx, 2
movzx ecx, byte [edi + edx]
cmp ecx, 0x3d
je 0x42cadb
cmp ecx, 0x2e
jne 0x42cadc
dec ebx
mov ecx, dword [esi + 0x18]
xor ecx, 2
and eax, 0xfffffffa
sub eax, ecx
movzx eax, byte [edi + eax]
cmp eax, 0x3d
je 0x42caf5
cmp eax, 0x2e
jne 0x42caf6
dec ebx
mov dword [esi + 0x4c], ebx
lea eax, [ebx + 1]
push eax
call fcn.0040c700
add esp, 4
mov dword [esi + 0x14], eax
mov dword [esi + 0x2c], edi
cmp dword [esi], edi
je 0x42cbf4
xor edx, edx
mov edi, 2
jmp 0x42cb30
mov edx, dword [esi + 4]
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x42cbf4
mov dword [esi], edx
mov ebx, dword [esi + 0x2c]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00422ed0
add esp, 4
mov byte [esi + 4], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00422ed0
add esp, 4
mov bh, al
movzx ecx, byte [esi + 4]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esi + 0x14]
mov edx, dword [esi]
mov byte [ecx + edx], al
mov eax, edx
inc edx
mov ecx, dword [esi + 0x18]
cmp edi, ecx
jae 0x42cb20
mov eax, dword [esi + 0x2c]
movzx eax, byte [eax + edi]
push eax
mov dword [esi + 4], edx
call fcn.00422ed0
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x18]
add esp, 4
cmp al, 0x40
je 0x42cb20
shl bh, 4
mov byte [esi + 0xb], al
shr al, 2
and al, 0xf
or al, bh
mov ebx, dword [esi]
lea edx, [ebx + 2]
mov dword [esi + 4], edx
mov edx, dword [esi + 0x14]
mov byte [edx + ebx + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x42cb1c
mov eax, dword [esi + 0x2c]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00422ed0
mov ecx, dword [esi + 0x18]
add esp, 4
cmp al, 0x40
mov edx, dword [esi + 4]
mov ah, byte [esi + 0xb]
je 0x42cb20
shl ah, 6
add al, ah
mov edx, dword [esi + 0x14]
mov ebx, dword [esi]
mov byte [edx + ebx + 2], al
add ebx, 3
mov edx, ebx
jmp 0x42cb20
mov eax, dword [esi + 0x4c]
mov edi, dword [esi + 0x14]
mov byte [edi + eax], 0
push edi
call fcn.00403de0
add esp, 4
mov dword [esi], eax
mov ebx, dword [esi + 0x10]
jmp dword [0x44df10]
push edi
call fcn.0040c710
add esp, 4
mov edi, dword [esi]
push edi
call fcn.00404700
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44df18]
jmp 0x42cd07
mov dword [esi + 4], eax
mov dword [esi + 0x20], 0xc1a45859
mov word [esi + 0x24], 0
mov edi, 0x51
nop
nop
movzx ecx, byte [esi + edi - 0x31]
mov ebx, ecx
and ebx, edi
mov eax, ebx
or al, 0xfd
inc al
mov edx, ebx
and dl, 0x5d
mul dl
mov edx, eax
add dl, cl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub dl, al
movzx eax, dl
add eax, edi
add al, 0x6b
mov byte [esi + edi - 0x31], al
inc edi
cmp edi, 0x57
jne case.default.0x42cca0
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
call fcn.00404650
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44df20]
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
mov edi, dword [esi]
jmp 0x42ccd6
movzx ecx, byte [eax]
test cl, cl
mov edx, dword [esi + 0xc]
mov edi, dword [esi]
je 0x42cccb
inc eax
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x42ccc0
mov word [edx], 0x203a
add edx, 2
mov ebx, dword [esi + 0x10]
movzx eax, byte [esi + 0x5c]
test al, al
je 0x42ccfb
lea ecx, [esi + 0x5d]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x42ccf0
mov byte [edx], 0xa
inc edx
mov dword [esi + 0xc], edx
mov al, 1
mov dword [esi + 0x34], eax
push edi
call fcn.00404970
add esp, 4
mov edx, dword [esi + 0x1c]
add edx, 8
xor eax, eax
cmp edx, ebx
setne al
jmp dword [eax*4 + 0x44dec0]
mov ecx, dword [esi + 0x34]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x44dec8]
jmp dword [0x44df28]
xor ecx, ecx
test edx, edx
jne 0x42ce11
jmp case.0x42c845.0
mov eax, dword [esi + 0xc]
mov byte [eax], 0
mov edi, dword [esi + 0x38]
mov dword [edi], 0xc3c6c9b9
mov dword [edi + 4], 0xffd3cacd
mov dword [edi + 8], 0xc0fcc2c9
mov dword [edi + 0xc], 0xf6c6e2bf
mov dword [edi + 0x10], 0xebb5fce9
mov dword [edi + 0x14], 0xf1fff2f7
mov dword [edi + 0x18], 0xd7d2b3cf
mov dword [edi + 0x1c], 0x5dd0
mov edx, 0x7d746516
nop
movzx eax, byte [edi + edx - 0x7d746516]
mov ebx, eax
mov edi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x3d
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
mov edi, dword [esi + 0x38]
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x92
mov byte [edi + edx - 0x7d746516], al
inc edx
cmp edx, 0x7d746536
jne 0x42cd90
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 0xc]
sub edx, eax
mov ecx, dword [ebp + 8]
push edx
push eax
push edi
call fcn.0040d250
mov ecx, eax
jmp dword [0x44df28]
push dword [esi + 0x30]
mov edi, ecx
call fcn.0040c710
mov ecx, edi
add esp, 4
and cl, 1
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0x54]
test edx, edx
je case.0x42c845.0
cmp edx, ebx
je case.0x42c845.0
push edx
mov edi, ecx
call fcn.0040c710
mov ecx, edi
add esp, 4
mov ebx, ecx
lea ecx, [esi + 0x3c]
call fcn.0043faf0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add eax, 2
cmp word [ecx], 0
jne 0x42cff0
mov eax, edi
not eax
and eax, ecx
not ecx
and ecx, edi
sub eax, ecx
cmp eax, 0xffffffd9
jge 0x42d013
mov eax, 0xffffffff
jmp 0x42d016
add eax, 0x26
push eax
call fcn.0040c700
add esp, 4
mov ebx, eax
mov dword [esp + 0x20], 0x37c939dc
mov dword [esp + 0x24], 0x33c035c7
mov dword [esp + 0x28], 0xcf3731ca
mov dword [esp + 0x2c], 0xcb2ecd37
mov dword [esp + 0x30], 0xc735c937
mov dword [esp + 0x34], 0xc338c536
mov dword [esp + 0x38], 0xdf25c139
mov dword [esp + 0x3c], 0xdb50ddee
mov dword [esp + 0x40], 0xd72cd924
mov dword [esp + 0x44], 0xd5d4
mov byte [esp + 0x48], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xf6
xor cl, byte [esp + eax + 0x20]
add cl, 0x32
mov byte [esp + eax + 0x20], cl
inc eax
cmp eax, 0x29
jne 0x42d080
movzx ecx, word [edi]
mov eax, ebx
test cx, cx
je 0x42d0c1
mov edx, edi
add edx, 2
mov eax, ebx
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 0x42d0b0
mov word [eax], 0
movzx ecx, word [esp + 0x20]
test cx, cx
je 0x42d0f1
lea edx, [esp + 0x22]
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 0x42d0e0
mov word [eax], 0
jmp dword [0x44df38]
push edi
call fcn.0040c710
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44df4c]
xor eax, eax
cmp word [ebx], 0x2a
sete al
mov dword [esp + 0x10], ebx
jmp dword [eax*4 + 0x44df50]
mov dword [esp + 0x20], 0x79347b41
mov dword [esp + 0x24], 0x7ddb7fd4
mov dword [esp + 0x28], 0x71e073ed
mov dword [esp + 0x2c], 0x75e977ea
mov dword [esp + 0x30], 0x69c66bed
mov dword [esp + 0x34], 0x6dff6fcd
mov dword [esp + 0x38], 0x61f863fe
mov dword [esp + 0x3c], 0x65ff67ff
mov dword [esp + 0x40], 0x59d05b36
mov dword [esp + 0x44], 0x5dc45ffc
mov word [esp + 0x48], 0x535c
mov dword [esp + 0x4a], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
movzx edx, byte [esi]
mov ebx, edx
not ebx
mov ebp, eax
and ebp, 0x391a1082
mov edi, ecx
xor edi, 0x6372f7be
sub edi, ebp
inc edi
and ebx, 0xe0
xor edx, 0x9a151be0
or edx, ebx
xor edi, 0x9a151be0
mov ebx, edx
and ebx, edi
add ebx, ebx
sub edi, ebx
lea ebx, [edi + edx]
add edx, edi
add edx, 0x44
mov edi, 0x3b
sub edi, ebx
and edi, 0x66
and edx, 0x99
sub edx, edi
and ebx, 1
xor edx, 1
lea edx, [edx + ebx*2]
add dl, 0x66
mov byte [esi], dl
inc esi
dec ecx
add eax, 0xfffffffe
cmp ecx, 0xffffffd2
jne 0x42d190
lea eax, [esp + 0x20]
push 0
push eax
mov ebx, dword [esp + 0x18]
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x60
push 3
push 0x120089
lea eax, [esp + 0xac]
push eax
push ebx
call fcn.004459e0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44df58]
xor ebp, ebp
xor edi, edi
jmp dword [0x44dfa8]
push ebx
call fcn.0040c710
add esp, 4
xor eax, eax
cmp ebp, edi
sete al
jmp dword [eax*4 + 0x44dfb0]
xor ebx, ebx
jmp dword [0x44e0a8]
lea eax, [esp + 0x94]
push 0
push eax
push dword [esp + 0xa8]
call fcn.00445d40
add esp, 0xc
not eax
shr eax, 0x1f
xor edi, edi
xor esi, esi
xor ebp, ebp
jmp dword [eax*4 + 0x44df60]
mov esi, dword [esp + 0x94]
lea eax, [esi + 1]
push eax
call fcn.0040c700
add esp, 4
push 0
push esi
mov dword [esp + 0x7c], eax
push eax
push dword [esp + 0xac]
call fcn.00445e20
add esp, 0x10
not eax
shr eax, 0x1f
xor esi, esi
xor ebp, ebp
jmp dword [eax*4 + 0x44df68]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x74]
mov byte [edi + esi], 0
push 0x20
call fcn.0040c700
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 + 0x18], eax
mov ecx, eax
push esi
push edi
call fcn.0042f8d0
movzx eax, al
xor edx, edx
xor ebp, ebp
jmp dword [eax*4 + 0x44df70]
mov dword [esp + 0x20], 0x77646e53
mov dword [esp + 0x24], 0x62746473
mov dword [esp + 0x28], 0x676b5f27
mov dword [esp + 0x2c], 0x5c21687a
mov dword [esp + 0x30], 0x7e737464
mov dword [esp + 0x34], 0x7475543b
mov dword [esp + 0x38], 0x6f746c77
mov word [esp + 0x3c], 0x1d6f
mov dword [esp + 0x3e], 0
xor eax, eax
mov ecx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [esp + eax + 0x20], al
inc eax
cmp eax, 0x22
jne case.default.0x42d38f
lea eax, [esp + 0x20]
push eax
call fcn.0042fb00
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
xor ebp, ebp
jmp dword [ecx*4 + 0x44df78]
mov eax, dword [case.0x42d38f.5]
nop
nop
nop
nop
nop
jmp eax
mov esi, edx
xor edi, edi
jmp dword [0x44df98]
mov ecx, dword [esp + 0x18]
call fcn.0042fc70
push dword [esp + 0x18]
call fcn.0040c710
add esp, 4
jmp dword [0x44dfa0]
jmp dword [0x44dfa0]
push dword [esp + 0x74]
call fcn.0040c710
add esp, 4
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 0x20], 0x54554a4b
mov word [esp + 0x24], 0
mov byte [esp + 0x26], 0
xor ecx, ecx
nop
nop
movzx esi, byte [esp + ecx + 0x20]
mov eax, edi
and edi, 0xc
mov edx, ecx
xor edx, 0x7af9e8ee
add edx, edi
mov edi, esi
xor edi, 0xb5
mov ebx, edx
xor ebx, 0xb5
or ebx, edi
mov edi, eax
xor esi, 0x4a
xor edx, 0x4a
or edx, esi
and edx, ebx
add dl, 0x5a
mov byte [esp + ecx + 0x20], dl
inc ecx
add edi, 2
cmp ecx, 7
jne 0x42d400
mov ecx, dword [0x451d6c]
test ecx, ecx
mov ebx, dword [esp + 0x10]
je 0x42d478
mov edx, dword [esp + 0x20]
xor esi, esi
mov edi, dword [0x451d70]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42d470
inc esi
cmp ecx, esi
jne 0x42d460
jmp 0x42d478
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42d49e
mov edi, dword [esp + 0xc]
jmp dword [0x44dfa8]
xor eax, eax
cmp ebp, edi
sete al
jmp dword [eax*4 + 0x44dfb0]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebp
jmp dword [0x44dfbc]
push dword [esp + 4]
push 1
push dword [0x451d74]
push ecx
call fcn.00442ab0
add esp, 0x10
mov edi, dword [esp + 0xc]
jmp dword [0x44dfa8]
add eax, 8
xor edx, edx
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
xor ebp, ebp
xor edi, edi
mov dword [esp], 0
jmp dword [eax*4 + 0x44df80]
mov eax, dword [esp + 0x14]
mov dword [ebp + eax + 4], ecx
mov edx, dword [esp + 0xc]
add edx, 8
mov esi, dword [esp + 0x1c]
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
mov edi, ebp
jmp dword [eax*4 + 0x44df80]
mov eax, dword [esi]
mov dword [esp + 4], eax
mov ecx, edx
sub ecx, edi
mov dword [esp + 0xc], edx
mov eax, dword [esp]
cmp edx, eax
mov edx, eax
mov dword [esp + 0x14], ecx
je 0x42d52a
mov ebp, edi
jmp 0x42d5d1
mov eax, ecx
sar eax, 3
inc eax
mov ecx, edi
xor ecx, edx
mov ebx, edx
mov edx, edi
not edx
and edx, ebx
add edx, edx
sub edx, ecx
sar edx, 3
mov ebx, edx
shr ebx, 1
add ebx, edx
cmp ebx, eax
ja 0x42d54f
mov ebx, eax
mov eax, ebx
and eax, 0xfffffff7
mov ecx, ebx
and ecx, 8
mov edx, ebx
or edx, 8
imul edx, ecx
xor ecx, 8
imul ecx, eax
add edx, ecx
push edx
call fcn.0040c700
add esp, 4
mov ebp, eax
test edi, edi
je 0x42d5bc
mov edx, dword [esp]
cmp edi, edx
je 0x42d5b3
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 [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, edx
jne 0x42d590
push edi
call fcn.0040c710
add esp, 4
lea edx, [ebx*8]
add edx, ebp
mov eax, ebp
mov ecx, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp], edx
mov dword [esp + 0x1c], esi
mov dword [ebp + ecx], 0
mov dword [ebp + ecx + 4], 0
xor ebx, ebx
mov esi, dword [esp + 4]
nop
nop
cmp byte [esi + ebx], 0
lea ebx, [ebx + 1]
jne 0x42d5f0
push ebx
call fcn.0040c700
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x14]
mov dword [ebp + eax], edi
mov ecx, ebx
shr ecx, 2
mov edx, esi
mov eax, edi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add eax, edx
mov edi, eax
add edx, esi
mov esi, ebx
and esi, 3
mov ecx, esi
shr ecx, 1
mov eax, edx
mov dword [esp + 8], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, ebx
inc al
test al, 1
jne 0x42d65a
movzx eax, byte [edx + esi - 1]
mov ecx, dword [esp + 8]
mov byte [ecx + esi - 1], al
xor ecx, ecx
cmp ebx, 1
je 0x42d4e0
mov dword [esp + 8], ebp
mov ecx, 0xffffffff
mov eax, 1
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
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 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 ebx, eax
jne 0x42d670
not ecx
mov ebp, dword [esp + 8]
jmp 0x42d4e0
mov eax, ebx
add esp, 0xe0
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], esi
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
mov dword [esp + 0x20], 0x54554a4b
mov word [esp + 0x24], 0
mov byte [esp + 0x26], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x20]
mov eax, edi
and edi, 0xc
mov edx, ecx
xor edx, 0x7af9e8ee
add edx, edi
mov edi, esi
xor edi, 0xb5
mov ebx, edx
xor ebx, 0xb5
or ebx, edi
mov edi, eax
xor esi, 0x4a
xor edx, 0x4a
or edx, esi
and edx, ebx
add dl, 0x5a
mov byte [esp + ecx + 0x20], dl
inc ecx
add edi, 2
cmp ecx, 7
jne 0x42d7e0
mov ecx, dword [0x451d6c]
test ecx, ecx
mov ebx, dword [esp + 0x74]
je 0x42d858
mov edx, dword [esp + 0x20]
xor esi, esi
mov edi, dword [0x451d70]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42d850
inc esi
cmp ecx, esi
jne 0x42d840
jmp 0x42d858
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42d888
mov esi, dword [esp]
mov ecx, dword [esp + 0x10]
jmp dword [0x44e090]
push dword [esp + 8]
push 1
push dword [0x451d74]
push ecx
call fcn.00442ab0
add esp, 0x10
mov esi, dword [esp]
mov ecx, dword [esp + 0x10]
jmp dword [0x44e090]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dfc8]
xor ecx, ecx
mov esi, dword [esp + 4]
jmp dword [0x44e090]
lea eax, [esp + 0x84]
push 0
push eax
push dword [esp + 0x80]
call fcn.00445d40
add esp, 0xc
not eax
shr eax, 0x1f
xor edi, edi
mov dword [esp + 0x10], 0
mov esi, dword [esp + 4]
mov dword [esp + 0x74], ebx
jmp dword [eax*4 + 0x44dfd0]
mov esi, dword [esp + 0x84]
lea eax, [esi + 1]
push eax
call fcn.0040c700
add esp, 4
push 0
push esi
mov dword [esp + 0x98], eax
push eax
push dword [esp + 0x84]
call fcn.00445e20
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
mov esi, dword [esp + 4]
jmp dword [eax*4 + 0x44dfd8]
mov edi, dword [esp + 0x90]
jmp dword [0x44dfe0]
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x44e000]
mov eax, dword [edx]
cmp dword [edx + 0x18], 3
mov edi, 0
jne case.default.0x42da35
mov edi, dword [edx + 0x10]
mov dword [esp + 0x14], eax
test eax, eax
setne al
test edi, edi
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44e008]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 8], ebp
mov eax, edi
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x42da81
mov dword [esp], esi
sub ecx, edi
inc ecx
shr ecx, 1
mov dword [esp + 0x9c], ecx
lea eax, [ecx + 1]
push eax
call fcn.0040c700
add esp, 4
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0x18], eax
jmp dword [edx*4 + 0x44e010]
mov byte [eax], cl
inc eax
movsx ecx, byte [ebp]
xor ebx, ebx
test ecx, ecx
setne bl
mov edi, ebp
jmp dword [ebx*4 + 0x44e010]
lea ebp, [edi + 1]
mov esi, ecx
or esi, 0x20
lea ebx, [esi - 0x61]
cmp ebx, 5
ja case.default.0x42dace
xor esi, 0xffffff9e
and ecx, 0xffffff9e
lea ecx, [esi + ecx*2]
add ecx, 0xb
movsx ebx, byte [ebp]
xor edx, edx
test ebx, ebx
setne dl
jmp dword [edx*4 + 0x44e018]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb case.default.0x42daf8
mov ecx, 0xffffffff
movsx ebx, byte [ebp]
xor edx, edx
test ebx, ebx
setne dl
jmp dword [edx*4 + 0x44e018]
shl ecx, 4
add edi, 2
mov edx, ebx
or edx, 0x20
lea esi, [edx - 0x61]
cmp esi, 5
ja case.default.0x42db2d
xor edx, 0xffffff9e
and ebx, 0xffffff9e
lea edx, [edx + ebx*2]
add edx, 0xb
or edx, ecx
mov byte [eax], dl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x44e010]
add ebx, 0xffffffd0
cmp ebx, 0xa
jb case.default.0x42db5c
mov ebx, 0xffffffff
or ebx, ecx
mov byte [eax], bl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x44e010]
mov byte [eax], 0
push 0
push 0x10
push 0
push dword [esp + 0x20]
call fcn.0042fd10
add esp, 0x10
mov dword [esp + 0x14], eax
xor edi, edi
mov ecx, dword [case.0x42cca0.74]
xor eax, eax
mov ebp, dword [esp + 8]
cmp ebp, dword [esp + 0xc]
setne al
mov esi, ebp
jmp dword [eax*4 + 0x44e020]
mov eax, dword [case.0x42db5c.57]
nop
jmp eax
mov ebx, 1
mov ebp, dword [esp + 8]
jmp dword [ebx*4 + 0x44e050]
add esi, 8
xor ebx, ebx
cmp esi, dword [esp + 0xc]
setne bl
jmp dword [ebx*4 + 0x44e020]
mov ebx, dword [esi + 4]
mov ebp, ebx
shr ebp, 0x1c
shl ebx, 4
or ebx, 1
xor ebp, edx
xor ebx, dword [esp + 0x14]
xor eax, eax
or ebx, ebp
sete al
jmp dword [eax*4 + 0x44e038]
jmp ecx
mov edi, dword [esi]
xor ebx, ebx
mov ebp, dword [esp + 8]
jmp dword [ebx*4 + 0x44e050]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x44e058]
mov esi, dword [esp]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
jmp dword [0x44e078]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, 0xffffffff
mov esi, dword [esp]
mov ebx, dword [esp + 0x10]
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x42dcb1
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], edi
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
push 0x31f26afb
push dword [0x451d78]
call fcn.00445040
add esp, 8
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x94]
push ecx
push 1
push 0
push 0
push edx
push 0
lea ecx, [esp + 0x38]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44e060]
mov edx, dword [esp + 0x1c]
jmp dword [0x44e078]
movzx eax, byte [edi]
test al, al
je 0x42dcdb
inc edi
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edi]
inc edi
test al, al
jne 0x42dcd0
mov byte [esi], 0
mov dword [esp], esi
jmp dword [0x44e06c]
mov word [esi], 0x203a
lea eax, [esi + 2]
mov esi, dword [esp + 0x7c]
test esi, esi
je 0x42dd22
mov ecx, dword [esp + 0x80]
mov edx, esi
and edx, 3
je 0x42dd26
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x42dd07
add eax, edi
mov edx, esi
sub edx, edi
mov edi, eax
jmp 0x42dd28
mov edi, eax
jmp 0x42dd66
mov edx, esi
cmp esi, 4
jb 0x42dd66
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 0x42dd2d
mov byte [edi], 0xa
mov esi, dword [esp]
jmp case.0x42cca0.82
mov edi, eax
mov byte [edi], 0xa
mov esi, dword [esp]
jmp dword [0x44e074]
lea eax, [esi + 2]
mov word [esi], 0x203a
mov esi, dword [esp + 0x7c]
test esi, esi
je 0x42dd70
mov ecx, dword [esp + 0x80]
mov edx, esi
and edx, 3
je 0x42ddc0
xor edi, edi
nop
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x42dda0
add eax, edi
mov edx, esi
sub edx, edi
mov edi, eax
cmp esi, 4
jae 0x42ddd0
jmp 0x42dd72
mov edx, esi
cmp esi, 4
jb 0x42dd72
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 edi, [eax + 4]
mov byte [eax + 3], bl
mov eax, edi
add edx, 0xfffffffc
jne 0x42ddd0
jmp 0x42dd72
inc edi
push 0xd80d2c4a
push dword [0x451d60]
call fcn.00445040
add esp, 8
push dword [esp + 0x80]
call eax
mov bl, 1
mov esi, edi
mov edx, dword [esp + 0x1c]
jmp dword [0x44e078]
push dword [esp + 0x18]
call fcn.0040c710
mov edx, dword [esp + 0x20]
add esp, 4
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x44e000]
movzx edx, byte [esp + eax + 0x6311adf9]
mov esi, edx
not esi
or esi, edi
or edx, eax
and edx, esi
mov esi, 0x43
sub esi, edx
add edx, 0x3c
and esi, 0x64
and edx, 0x9b
sub edx, esi
add dl, 0x65
mov byte [esp + eax + 0x6311adf9], dl
inc eax
dec edi
cmp eax, 0x9cee524d
jne 0x42de60
lea eax, [esp + 0x20]
push eax
call fcn.0042fb00
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
mov edi, dword [esp + 4]
mov esi, edi
jmp dword [ecx*4 + 0x44dff8]
add eax, 8
xor ebx, ebx
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
mov esi, edi
jmp dword [eax*4 + 0x44e000]
mov dword [esp + 0x20], 0x1d001a31
mov dword [esp + 0x24], 0x6180811
mov dword [esp + 0x28], 0x1d1529dd
mov dword [esp + 0x2c], 0x20c71c0a
mov dword [esp + 0x30], 0xa1d1000
mov dword [esp + 0x34], 0xf0f3ac9
mov dword [esp + 0x38], 0x7567680e
mov dword [esp + 0x3c], 0x6d636045
mov word [esp + 0x40], 0x8b6f
mov dword [esp + 0x42], 0
mov eax, 0x9cee5227
mov edi, 0xd8
mov ecx, dword [esp + 0x8c]
jmp 0x42de60
mov eax, dword [esp + 0xc]
sub eax, ebp
sar eax, 3
mov ecx, eax
and ecx, 0xfffffbde
mov edx, eax
and edx, 0x421
or eax, 0x421
imul eax, edx
xor edx, 0x421
imul edx, ecx
add eax, edx
push eax
call fcn.0040c700
add esp, 4
mov dword [esp + 0x20], 0x11e21f3b
mov dword [esp + 0x24], 0x15f71381
mov dword [esp + 0x28], 0x98a17f7
mov dword [esp + 0x2c], 0xd9a0bcb
mov dword [esp + 0x30], 0x1ca0f9c
mov dword [esp + 0x34], 0x59603e3
mov dword [esp + 0x38], 0x392107e7
mov dword [esp + 0x3c], 0x3dcf3bd4
mov dword [esp + 0x40], 0x31d93fa8
mov dword [esp + 0x44], 0x35ad33d3
mov dword [esp + 0x48], 0x29aa37d8
mov dword [esp + 0x4c], 0x2dcf2bb9
mov dword [esp + 0x50], 0x21b22fcf
mov dword [esp + 0x54], 0x25b423fe
mov dword [esp + 0x58], 0xd9c027c0
lea ebp, [esp + 0x5c]
mov dword [esp + 0x5c], 0xdbd8
mov byte [esp + 0x60], 0
mov ecx, 0xe2456ec5
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x1dba915b]
xor edx, ecx
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
add dl, 0x26
mov byte [esp + ecx + 0x1dba915b], dl
inc ecx
cmp ecx, 0xe2456f06
jne 0x42e000
mov dword [esp + 4], eax
lea edx, [esp + 0x20]
lea ebx, [esp + 0xa0]
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xdc]
mov ecx, 1
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
lea esi, [esp + 0x88]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x451d68]
mov edi, dword [esp + 0x88]
lea eax, [edi + edi]
test edi, edi
jns 0x42e081
mov eax, 0xffffffff
push eax
call fcn.0040c700
add esp, 4
mov ebx, eax
push esi
push edi
push eax
push 0x1e
lea eax, [esp + 0xb0]
push eax
push 0
call dword [0x451d68]
lea eax, [esp + 0x78]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.004459e0
add esp, 0x14
mov ebp, dword [esp + 8]
jmp dword [0x44dfc4]
mov dword [esp + 0x20], 0x11e21f3b
mov dword [esp + 0x24], 0x15f71381
mov dword [esp + 0x28], 0x98a17f7
mov dword [esp + 0x2c], 0xd9a0bcb
mov dword [esp + 0x30], 0x1ca0f9c
mov dword [esp + 0x34], 0x59603e3
mov dword [esp + 0x38], 0x392107e7
mov dword [esp + 0x3c], 0x3dcf3bd4
mov dword [esp + 0x40], 0x31d93fa8
mov dword [esp + 0x44], 0x35ad33d3
mov dword [esp + 0x48], 0x29aa37d8
mov dword [esp + 0x4c], 0x2dcf2bb9
mov dword [esp + 0x50], 0x21b22fcf
mov dword [esp + 0x54], 0x25b423fe
mov dword [esp + 0x58], 0xd9c027c0
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0xdbd8
mov byte [esp + 0x60], 0
mov ecx, 0xe2456ec5
movzx edx, byte [esp + ecx + 0x1dba915b]
xor edx, ecx
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
add dl, 0x26
mov byte [esp + ecx + 0x1dba915b], dl
inc ecx
cmp ecx, 0xe2456f06
jne 0x42e150
lea edx, [esp + 0x20]
lea ebx, [esp + 0xa0]
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xdc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x88]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x451d68]
mov ebx, dword [esp + 0x88]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x42e1cb
mov eax, 0xffffffff
push eax
call fcn.0040c700
add esp, 4
mov edi, eax
push esi
push ebx
push eax
push 0x1e
lea eax, [esp + 0xb0]
push eax
push 0
call dword [0x451d68]
lea eax, [esp + 0x78]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.004459e0
add esp, 0x14
jmp case.0x42d38f.16
mov dword [esp + 0x8c], ebx
movzx eax, al
xor ebx, ebx
mov esi, dword [esp + 4]
jmp dword [eax*4 + 0x44dff0]
xor edi, edi
jmp dword [0x44e080]
mov dword [esp + 0x10], ebx
jmp dword [0x44e088]
mov esi, dword [esp + 0x84]
mov byte [edi + esi], 0
push 0x20
call fcn.0040c700
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 ecx, eax
push esi
push edi
call fcn.0042f8d0
mov esi, dword [esp + 0x84]
mov byte [edi + esi], 0
push 0x20
call fcn.0040c700
add esp, 4
mov ebx, eax
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 ecx, eax
push esi
push edi
call fcn.0042f8d0
jmp dword [0x44dfe8]
enter 0x42, 0x22
into
inc edx
add byte [edx], ah
into
inc edx
add byte [edi - 0x38], ah
inc edx
add byte [ecx + ecx*8], cl
leave
leave
inc edx
add byte [ebx], bh
int 0x42
add byte [ecx*8 - 0x367bffbe], ah
inc edx
add byte [0x4a0042cd], dh
int 0x42
add byte [edx - 0x2fffbd37], cl
leave
inc edx
add al, dl
leave
inc edx
add byte [0x2a0042ca], cl
retf 0x42