Function at 0x41a49c
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x484
mov edi, eax
mov dword [esp + 0x30], ecx
mov esi, edx
mov ecx, dword [0x4f6e34]
xor ecx, esp
mov dword [esp + 0x474], ecx
test edi, edi
je 0x41b74a
mov ebx, dword [edi + 0x120]
test ebx, ebx
je 0x41b74a
mov edx, dword [ebx + 0x14ec0]
mov dword [esp + 0x2c], edx
test dl, 4
je 0x41a516
mov ecx, dword [esp + 0x474]
mov dword [esp + 0x474], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x41a8cd
xor eax, eax
add esp, 0x484
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx + 0x14ec8]
test edx, edx
je 0x41a54a
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x41a544
mov eax, edx
add edx, ecx
call fcn.00449a80
mov dword [esp + 0x28], eax
jmp 0x41a552
mov dword [esp + 0x28], 0
mov edx, dword [ebx + 0x14ecc]
test edx, edx
je 0x41a586
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x41a580
mov eax, edx
add edx, ecx
call fcn.00449a80
mov dword [esp + 0x24], eax
jmp 0x41a58e
mov dword [esp + 0x24], 0
mov edx, dword [ebx + 0x14ed0]
test edx, edx
je 0x41a5c2
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x41a5bc
mov eax, edx
add edx, ecx
call fcn.00449a80
mov dword [esp + 0x20], eax
jmp 0x41a5ca
mov dword [esp + 0x20], 0
mov edx, dword [ebx + 0x14ed4]
test edx, edx
je 0x41a5fa
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x41a5f8
mov eax, edx
add edx, ecx
call fcn.00449a80
jmp 0x41a5fc
xor eax, eax
cmp dword [esp + 0x28], 0x1e
ja 0x41a65a
cmp dword [esp + 0x24], 0x1e
ja 0x41a65a
cmp dword [esp + 0x20], 0x1e
ja 0x41a65a
cmp eax, 0x1e
ja 0x41a65a
cmp dword [ebx + 0x14ed8], 0
je 0x41a624
cmp eax, 0x1c
ja 0x41a65a
test byte [esp + 0x2c], 0xa
jne 0x41a65a
mov ecx, dword [esp + 0x474]
mov dword [esp + 0x474], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x41a8cd
xor eax, eax
add esp, 0x484
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 4]
cmp edx, 0xffffffff
je 0x41a753
pxor xmm3, xmm3
pxor xmm0, xmm0
cvtsi2sd xmm3, edx
cvtsi2sd xmm0, dword [ebx + 0x40]
shr edx, 0x1f
addsd xmm3, qword [edx*8 + 0x48a5c0]
mulsd xmm3, qword [0x48a5d8]
divsd xmm3, xmm0
comisd xmm3, xmmword [0x48a5e0]
jbe 0x41a6a0
mov ecx, 0xffffffff
jmp 0x41a6dd
pxor xmm0, xmm0
comisd xmm0, xmm3
jbe 0x41a6ae
xor ecx, ecx
jmp 0x41a6dd
movsd xmm0, qword [0x48a5e8]
movaps xmm1, xmm3
movaps xmm2, xmm0
cmpnltsd xmm1, xmm0
cmplesd xmm2, xmm3
movd edx, xmm1
andps xmm2, xmm0
subsd xmm3, xmm2
cvttsd2si ecx, xmm3
and edx, 0x80000000
add ecx, edx
lea edx, [esp + 0x74]
push ecx
push 0x48ac50
push edx
call fcn.00401d60
add esp, 0xc
mov edx, dword [edi + 0x120]
mov dword [esp + 0x24], edx
test edx, edx
je 0x41a749
test edx, edx
mov eax, edi
mov ecx, dword [edx + 0x14ec0]
mov dword [esp + 0x20], ecx
lea ecx, [edx + 0x14ef0]
mov dword [esp + 0xc], 0
cmove ecx, edx
lea edx, [esp + 0x74]
mov dword [esp + 0x10], edx
mov edx, 0x544c454e
call fcn.00418c60
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [edx + 0x14ec0], eax
mov ecx, dword [ebx + 0x14ec0]
mov dword [esp + 0x2c], ecx
jmp 0x41a753
mov eax, dword [ebx + 0x14ec0]
mov dword [esp + 0x2c], eax
cmp dword [ebx + 0x14ee0], 0
je 0x41a7e1
mov eax, dword [ebx + 0x14ee4]
mov dword [esp + 0x20], eax
test eax, eax
je 0x41a7e1
mov eax, dword [ebx + 0x14eec]
cmp eax, 1
je 0x41a797
cmp eax, 2
jne 0x41a788
mov dword [esp + 0x70], str.image_png
jmp 0x41a79f
cmp eax, 3
jne 0x41a7e1
mov dword [esp + 0x70], str.image_gif
jmp 0x41a79f
mov dword [esp + 0x70], str.image_jpeg
cmp dword [esp + 0x70], 0
je 0x41a7da
mov edx, dword [esp + 0x70]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x41a7ce
mov eax, edx
add edx, ecx
call fcn.00449a80
mov edx, eax
mov eax, dword [esp + 0x20]
lea edi, [eax + edx + 0x18]
jmp 0x41a7ee
mov edi, 0xa
jmp 0x41a7ee
mov dword [esp + 0x70], 0
mov edi, 0xa
mov eax, dword [ebx + 0x14ef4]
test eax, eax
je 0x41a8d6
mov edx, dword [eax + 4]
cmp edx, 0x434f4d4d
jne 0x41a810
mov dword [esp + 0x6c], esi
jmp 0x41a894
mov dword [esp + 0x6c], esi
cmp edx, 0x55534552
je 0x41a894
and edx, 0xff000000
cmp edx, 0x57000000
je 0x41a860
test edx, edx
je 0x41a860
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x1c]
cmp dword [eax + 0x20], 1
jne 0x41a84d
test ecx, ecx
lea esi, [ecx + ecx + 0xd]
mov ecx, 0xb
cmova ecx, esi
lea ecx, [ecx + edx*2]
jmp 0x41a85c
test ecx, ecx
lea esi, [ecx + 0xc]
mov ecx, 0xb
cmova ecx, esi
add ecx, edx
add edi, ecx
jmp 0x41a8b6
mov edx, dword [eax + 0x10]
test edx, edx
jbe 0x41a877
lea ecx, [edx + edx + 0xd]
add edx, 0xc
cmp dword [eax + 0x14], 1
cmove edx, ecx
jmp 0x41a87c
mov edx, 0xa
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jbe 0x41a890
lea esi, [edx + ecx - 1]
add edx, ecx
cmp dword [eax + 0x20], 1
cmove edx, esi
add edi, edx
jmp 0x41a8b6
mov edx, dword [eax + 0x10]
mov esi, dword [eax + 0x1c]
lea ecx, [edx + edx + 0x10]
add edx, 0xf
cmp dword [eax + 0x14], 1
cmove edx, ecx
lea ecx, [edx + esi*2]
add edx, esi
cmp dword [eax + 0x20], 1
cmove edx, ecx
add edi, edx
mov eax, dword [eax]
test eax, eax
je 0x41a8d2
mov edx, dword [eax + 4]
cmp edx, 0x434f4d4d
jne 0x41a814
jmp 0x41a894
call fcn.00466f40
mov esi, dword [esp + 0x6c]
test byte [esp + 0x2c], 0x20
je 0x41a8e3
add edi, dword [ebx + 0x14ee8]
cmp edi, dword [esp + 0x30]
ja 0x41adc7
test esi, esi
je 0x41b725
xor edx, edx
lea ecx, [edi - 0xa]
mov dword [esp + 0x20], ecx
mov byte [esi + 4], dl
mov byte [esi + 5], dl
mov edx, ecx
shr edx, 0xe
and edx, 0x7f
mov byte [esi + 7], dl
mov edx, ecx
shr edx, 7
shr ecx, 0x15
and edx, 0x7f
mov byte [esi + 8], dl
and ecx, 0x7f
mov edx, dword [esp + 0x20]
and edx, 0x7f
mov byte [esi], 0x49
mov byte [esi + 1], 0x44
mov byte [esi + 2], 0x33
mov byte [esi + 3], 3
mov byte [esi + 6], cl
mov byte [esi + 9], dl
lea edx, [esi + 0xa]
mov ecx, dword [ebx + 0x14ef4]
mov dword [esp + 0x68], edx
test ecx, ecx
je 0x41b31d
mov edx, dword [ecx + 4]
cmp edx, 0x434f4d4d
jne 0x41a973
mov dword [esp + 0x6c], esi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x68]
mov eax, edx
jmp 0x41acd5
mov dword [esp + 0x6c], esi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x68]
mov eax, edx
cmp eax, 0x55534552
je 0x41acd5
mov edx, eax
and edx, 0xff000000
cmp edx, 0x57000000
je 0x41abe9
test edx, edx
je 0x41abe9
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x1c]
cmp dword [ecx + 0x20], 1
jne 0x41a9cf
test edx, edx
lea edi, [edx + edx + 0xd]
mov edx, 0xb
cmova edx, edi
lea ebx, [edx + ebx*2]
mov dword [esp + 0x5c], ebx
jmp 0x41a9e2
test edx, edx
lea edi, [edx + 0xc]
mov edx, 0xb
cmova edx, edi
add edx, ebx
mov dword [esp + 0x5c], edx
cmp dword [esp + 0x5c], 0xa
jbe 0x41adaa
mov byte [esi + 3], al
mov edx, eax
mov ebx, eax
lea edi, [esi + 0xb]
shr eax, 0x18
mov byte [esi], al
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff6
shr edx, 8
shr ebx, 0x10
mov byte [esi + 2], dl
mov edx, eax
mov byte [esi + 1], bl
mov ebx, eax
mov byte [esi + 7], al
shr eax, 0x18
shr edx, 8
shr ebx, 0x10
mov byte [esi + 4], al
xor eax, eax
mov byte [esi + 6], dl
mov byte [esi + 5], bl
mov byte [esi + 8], al
mov byte [esi + 9], al
mov edx, dword [ecx + 0x20]
cmp edx, 1
cmovne edx, eax
mov byte [esi + 0xa], dl
mov ebx, dword [ecx + 0x10]
test ebx, ebx
jbe 0x41abbb
cmp dword [ecx + 0x14], 1
je 0x41af33
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x58], eax
cmp ebx, 6
jle 0x41ab4f
lea edx, [esi + 0xb]
mov eax, edx
sub eax, dword [esp + 0x58]
cmp eax, ebx
jge 0x41aa78
neg eax
cmp eax, ebx
jl 0x41ab4f
cmp ebx, 0x10
jl 0x41adf6
and edx, 0xf
mov eax, edx
neg eax
add eax, 0x10
test edx, edx
cmovne edx, eax
lea edi, [edx + 0x10]
cmp ebx, edi
jl 0x41adf6
mov eax, ebx
sub eax, edx
and eax, 0xf
neg eax
add eax, ebx
mov dword [esp + 0x40], eax
test edx, edx
jbe 0x41aad1
mov dword [esp + 0x3c], ebx
xor eax, eax
mov dword [esp + 0x4c], ecx
mov ebx, dword [esp + 0x58]
movzx ecx, byte [eax + ebx]
mov byte [eax + esi + 0xb], cl
inc eax
cmp eax, edx
jb 0x41aabc
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x58]
lea edi, [eax + edx]
test edi, 0xf
je 0x41ab00
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
movdqu xmm0, xmmword [edx + ecx]
movdqu xmmword [edx + esi + 0xb], xmm0
add edx, 0x10
cmp edx, eax
jb 0x41aaec
jmp 0x41ab1e
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
movdqu xmm0, xmmword [edx + ecx]
movdqu xmmword [edx + esi + 0xb], xmm0
add edx, 0x10
cmp edx, eax
jb 0x41ab0c
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x40]
jbe 0x41ab49
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
movzx eax, byte [edx + ecx]
mov byte [edx + esi + 0xb], al
inc edx
cmp edx, ebx
jb 0x41ab38
mov ecx, dword [esp + 0x4c]
lea edi, [esi + ebx + 0xb]
jmp 0x41abb7
mov eax, ebx
shr eax, 1
mov dword [esp + 0x44], eax
je 0x41af26
mov dword [esp + 0x3c], ebx
xor eax, eax
mov dword [esp + 0x4c], ecx
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x58]
movzx edx, byte [edi + eax*2]
mov byte [esi + eax*2 + 0xb], dl
movzx ecx, byte [edi + eax*2 + 1]
mov byte [esi + eax*2 + 0xc], cl
inc eax
cmp eax, ebx
jb 0x41ab6f
mov ebx, dword [esp + 0x3c]
lea edi, [esi + eax*2 + 0xb]
mov ecx, dword [esp + 0x4c]
lea eax, [eax + eax + 1]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
lea edx, [eax - 1]
cmp edx, ebx
jae 0x41abb7
mov edx, eax
mov edi, dword [esp + 0x58]
movzx eax, byte [edx + edi - 1]
lea edi, [esi + edx + 0xb]
mov byte [edx + esi + 0xa], al
mov byte [edi], 0
inc edi
cmp dword [ecx + 0x20], 1
je 0x41ae03
mov edx, dword [ecx + 0x1c]
mov esi, edi
dec edx
mov ebx, dword [ecx + 0x18]
cmp edx, 0xffffffff
je 0x41adaa
movzx eax, byte [ebx]
dec edx
mov byte [esi], al
inc esi
inc ebx
cmp edx, 0xffffffff
jne 0x41abd7
jmp 0x41adaa
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x1c]
test edx, edx
jbe 0x41ac07
lea edi, [edx + edx + 0xd]
add edx, 0xc
cmp dword [ecx + 0x14], 1
cmove edx, edi
test ebx, ebx
ja 0x41ac14
jmp 0x41ac21
test ebx, ebx
jbe 0x41adaa
mov edx, 0xa
lea edi, [edx + ebx - 1]
add edx, ebx
cmp dword [ecx + 0x20], 1
cmove edx, edi
cmp edx, 0xa
jbe 0x41adaa
mov ebx, eax
add edx, 0xfffffff6
shr ebx, 8
mov byte [esi + 2], bl
mov ebx, eax
mov byte [esi + 3], al
shr ebx, 0x10
shr eax, 0x18
mov byte [esi + 1], bl
mov ebx, edx
mov byte [esi], al
mov eax, edx
mov byte [esi + 7], dl
shr edx, 0x18
shr eax, 8
shr ebx, 0x10
mov byte [esi + 4], dl
xor edx, edx
mov byte [esi + 6], al
mov byte [esi + 5], bl
lea ebx, [esi + 0xa]
mov byte [esi + 8], dl
mov byte [esi + 9], dl
cmp dword [ecx + 0x10], 0
jbe 0x41aca7
mov edx, dword [ecx + 0x14]
xor eax, eax
cmp edx, 1
lea ebx, [esi + 0xb]
cmovne edx, eax
mov byte [esi + 0xa], dl
cmp dword [ecx + 0x14], 1
je 0x41b1d8
mov edx, dword [ecx + 0x10]
dec edx
mov esi, dword [ecx + 0xc]
cmp edx, 0xffffffff
je 0x41aca3
movzx eax, byte [esi]
dec edx
mov byte [ebx], al
inc ebx
inc esi
cmp edx, 0xffffffff
jne 0x41ac96
mov byte [ebx], 0
inc ebx
cmp dword [ecx + 0x20], 1
je 0x41b055
mov edx, dword [ecx + 0x1c]
mov esi, ebx
dec edx
mov ebx, dword [ecx + 0x18]
cmp edx, 0xffffffff
je 0x41adaa
movzx eax, byte [ebx]
dec edx
mov byte [esi], al
inc esi
inc ebx
cmp edx, 0xffffffff
jne 0x41acc3
jmp 0x41adaa
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x1c]
lea ebx, [edx + edx + 0x10]
add edx, 0xf
cmp dword [ecx + 0x14], 1
cmove edx, ebx
lea ebx, [edx + edi*2]
add edx, edi
cmp dword [ecx + 0x20], 1
cmove edx, ebx
cmp edx, 0xa
jbe 0x41adaa
mov ebx, eax
add edx, 0xfffffff6
shr ebx, 8
mov byte [esi + 2], bl
mov ebx, eax
mov byte [esi + 3], al
shr ebx, 0x10
shr eax, 0x18
mov byte [esi + 1], bl
mov ebx, edx
mov byte [esi], al
mov eax, edx
mov byte [esi + 7], dl
shr edx, 0x18
shr eax, 8
shr ebx, 0x10
mov byte [esi + 4], dl
xor edx, edx
mov byte [esi + 6], al
mov byte [esi + 5], bl
mov byte [esi + 8], dl
mov byte [esi + 9], dl
mov eax, dword [ecx + 0x20]
cmp eax, 1
cmovne eax, edx
mov byte [esi + 0xa], al
movzx edx, byte [ecx + 8]
mov byte [esi + 0xb], dl
movzx ebx, byte [ecx + 9]
mov byte [esi + 0xc], bl
lea ebx, [esi + 0xe]
movzx eax, byte [ecx + 0xa]
mov byte [esi + 0xd], al
cmp dword [ecx + 0x14], 1
je 0x41b60f
mov edx, dword [ecx + 0x10]
dec edx
mov esi, dword [ecx + 0xc]
cmp edx, 0xffffffff
je 0x41ad81
movzx eax, byte [esi]
dec edx
mov byte [ebx], al
inc ebx
inc esi
cmp edx, 0xffffffff
jne 0x41ad74
mov byte [ebx], 0
inc ebx
cmp dword [ecx + 0x20], 1
je 0x41b508
mov edx, dword [ecx + 0x1c]
mov esi, ebx
dec edx
mov ebx, dword [ecx + 0x18]
cmp edx, 0xffffffff
je 0x41adaa
movzx eax, byte [ebx]
dec edx
mov byte [esi], al
inc esi
inc ebx
cmp edx, 0xffffffff
jne 0x41ad9d
mov ecx, dword [ecx]
test ecx, ecx
je 0x41b30d
mov eax, dword [ecx + 4]
cmp eax, 0x434f4d4d
jne 0x41a985
jmp 0x41acd5
mov ecx, dword [esp + 0x474]
mov dword [esp + 0x474], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
push ebx
xor eax, eax
mov ecx, dword [esp + 8]
xor ebx, ebx
jmp 0x41adf9
or byte [ecx], dh
fucomi st(3)
or eax, 0x26748d
nop
test dx, dx
je 0x41ae11
add eax, 1
movzx edx, word [ecx + eax*2]
cmp dx, 0x5c
jne 0x41adf1
mov ebx, eax
jmp 0x41adf6
lea eax, [ecx + ebx*2 + 2]
pop ebx
ret
add ebx, dword [eax]
add esp, 8
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ah, 0x26
add byte [eax], al
add byte [eax], al
lea esi, [esi]
nop
mov eax, dword fs:[0x30]
ret
mov eax, dword [eax]
mov edx, dword [eax + 0x30]
test edx, edx
add byte [ebx - 0x2d7acfb0], cl
je 0x41b054
mov eax, dword [eax + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [0x4f7c84]
mov dword [esp], eax
call fcn.0041afe1
mov ebx, dword [0x4f7c8c]
mov dword [esp + 0x14], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
call edi
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
call ebx
sub esp, 0xc
mov ebp, eax
mov dword [esp + 8], 0x104
mov dword [esp + 4], eax
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor edx, edx
xor eax, eax
sub esp, 0xc
jmp 0x41b0c9
test cx, cx
je 0x41b0e1
add eax, 1
movzx ecx, word [ebp + eax*2]
cmp cx, 0x5c
jne 0x41b0c1
mov edx, eax
jmp 0x41b0c6
mov esi, dword [0x4f7c9c]
mov eax, dword [esi]
test eax, eax
je 0x41b14d
lea edx, [ebp + edx*2 + 2]
movzx ebp, byte [esi]
movzx eax, word [edx]
test ax, ax
je 0x41b264
xor ecx, ecx
add ecx, 1
cmp word [edx + ecx*2], 0
jne 0x41b102
mov word [esp + 0x1e], ax
mov eax, ebp
cmp cl, al
je 0x41b120
cmp byte [esi + 1], cl
jne 0x41b257
movzx eax, word [esp + 0x1e]
add edx, 2
xor ecx, ecx
lea esi, [esi]
add edx, 2
add ecx, eax
movzx eax, word [edx - 2]
test ax, ax
jne 0x41b131
cmp dword [esi + 4], ecx
je 0x41b14d
cmp dword [esi + 8], ecx
jne 0x41b257
mov esi, dword [0x4f7c8c]
mov dword [esp + 0x2c], 0
call edi
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 8], esi
call ebx
mov ecx, dword [0x4f7c90]
xor edx, edx
sub esp, 0xc
test ecx, ecx
je 0x41b19f
lea esi, [esi]
mov ecx, dword [0x4f7c78]
mov ecx, dword [ecx + edx]
mov dword [eax + edx], ecx
mov ecx, dword [0x4f7ca8]
add edx, ecx
mov ecx, dword [0x4f7c90]
cmp ecx, edx
ja 0x41b181
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call fcn.0041ae91
mov esi, eax
test eax, eax
je 0x41b257
mov ebx, dword [0x4f7c70]
lea edi, [esp + 0x2c]
mov edx, dword [0x4f7c90]
mov dword [esp + 0xc], edi
mov eax, dword [0x4f7c80]
mov dword [esp], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call esi
or byte [ecx - 0xfbdbbc], cl
salc
mov ecx, dword [0x4f7ca0]
mov eax, 8
sub esp, 0x10
mov edx, dword [0x4f7c80]
add ecx, dword [esp + 0x18]
mov ebp, dword [ecx + 4]
cmp edx, 8
jbe 0x41b21b
nop
mov edx, dword [ecx + eax]
add edx, ebp
mov dword [ebx + eax], edx
mov edx, dword [0x4f7ca8]
add eax, edx
mov edx, dword [0x4f7c80]
cmp edx, eax
ja 0x41b201
mov eax, dword [0x4f7c98]
mov edx, dword [esp + 0x2c]
mov dword [ebx + 8], eax
mov eax, dword [0x4f7c80]
mov dword [esp + 8], edx
mov dword [esp], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
call esi
mov eax, dword [0x4f7c74]
mov edx, dword [0x4f7c74]
sub esp, 0x10
add eax, dword [ebx + 0xc]
add eax, ebx
add ebx, edx
mov dword [esp], ebx
call eax
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, ebp
test al, al
je 0x41b270
cmp byte [esi + 1], 0
jne 0x41b257
xor ecx, ecx
jmp 0x41b13f
mov dword [esp + 0x68], esi
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x6c]
cmp dword [esp + 0x70], 0
je 0x41b465
mov edx, dword [esp + 0x70]
lea ecx, [edx + 1]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 0x14ee0]
mov ebx, dword [ebx + 0x14ee4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ebx
test edx, edx
je 0x41b465
cmp dword [esp + 0x28], 0
je 0x41b465
cmp dword [esp + 0x24], 0
je 0x41b465
mov ecx, dword [esp + 0x68]
mov byte [ecx + 3], 0x43
mov byte [ecx + 2], 0x49
mov byte [ecx + 1], 0x50
mov byte [ecx], 0x41
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x41b39c
mov eax, edx
add edx, ecx
call fcn.00449a80
mov edx, ebx
lea edx, [edx + eax + 4]
mov eax, dword [esp + 0x68]
mov ebx, edx
mov ecx, edx
shr ebx, 8
mov byte [eax + 6], bl
mov ebx, dword [esp + 0x70]
shr ecx, 0x10
mov byte [eax + 7], dl
mov byte [eax + 5], cl
xor ecx, ecx
shr edx, 0x18
mov byte [eax + 4], dl
mov byte [eax + 8], cl
mov byte [eax + 9], cl
mov byte [eax + 0xa], cl
add eax, 0xb
movsx edx, byte [ebx]
mov dword [esp + 0x68], eax
test edx, edx
je 0x41b3f1
mov ecx, eax
mov ebx, dword [esp + 0x20]
mov byte [ecx], dl
inc ecx
movsx edx, byte [ebx]
inc ebx
test edx, edx
jne 0x41b3e2
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x68]
xor edx, edx
cmp dword [esp + 0x24], 0x60
mov byte [ecx], dl
mov byte [ecx + 1], dl
mov byte [ecx + 2], dl
jle 0x41b49e
mov dword [esp + 0x60], edi
mov edi, ecx
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
lea eax, [edi + 3]
mov dword [esp + 0x20], eax
sub ebx, eax
xor eax, eax
mov edx, ebx
mov edi, 1
neg edx
cmp edx, ecx
mov edx, eax
cmovg edx, edi
cmp ebx, ecx
cmovle edi, eax
or edx, edi
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x60]
je 0x41b49e
push dword [esp + 0x24]
push dword [esp + 0x2c]
push edx
call fcn.004499d0
add esp, 0xc
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x68]
lea ebx, [edx + ecx + 3]
mov dword [esp + 0x68], ebx
add esi, edi
mov edx, dword [esp + 0x68]
sub esi, edx
push esi
push 0
push edx
call fcn.00449a20
add esp, 0xc
mov ecx, dword [esp + 0x474]
mov dword [esp + 0x474], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x41a8cd
jmp 0x41ade7
mov ecx, dword [esp + 0x24]
shr ecx, 1
je 0x41b501
mov dword [esp + 0x60], edi
xor ebx, ebx
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x28]
movzx eax, byte [edi + ebx*2]
mov byte [esi + ebx*2 + 3], al
movzx edx, byte [edi + ebx*2 + 1]
mov byte [esi + ebx*2 + 4], dl
inc ebx
cmp ebx, ecx
jb 0x41b4b8
mov dword [esp + 0x68], esi
lea edx, [ebx + ebx + 1]
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x6c]
lea ecx, [edx - 1]
cmp ecx, dword [esp + 0x24]
jae 0x41b455
mov ebx, dword [esp + 0x28]
movzx ecx, byte [ebx + edx - 1]
mov ebx, dword [esp + 0x68]
mov byte [edx + ebx + 2], cl
jmp 0x41b455
mov edx, 1
jmp 0x41b4de
mov edx, dword [ecx + 0x1c]
mov esi, ebx
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x50], edx
test edx, edx
jbe 0x41adaa
movzx edx, word [eax]
cmp edx, 0xfffe
je 0x41b58a
mov edi, dword [esp + 0x50]
shr edi, 1
je 0x41b5fe
mov dword [esp + 0x4c], ecx
xor edx, edx
movzx ecx, word [eax + edx*4]
mov byte [ebx + edx*4], cl
shr ecx, 8
mov byte [ebx + edx*4 + 1], cl
movzx ecx, word [eax + edx*4 + 2]
mov byte [ebx + edx*4 + 2], cl
shr ecx, 8
mov byte [ebx + edx*4 + 3], cl
inc edx
cmp edx, edi
jb 0x41b539
mov ecx, dword [esp + 0x4c]
lea esi, [ebx + edx*4]
lea edx, [edx + edx + 1]
lea edi, [edx - 1]
cmp edi, dword [esp + 0x50]
jae 0x41adaa
movzx eax, word [eax + edx*2 - 2]
lea esi, [ebx + edx*2]
mov byte [esi - 2], al
shr eax, 8
mov byte [esi - 1], al
jmp 0x41adaa
mov edi, dword [esp + 0x50]
shr edi, 1
je 0x41b608
mov dword [esp + 0x4c], ecx
xor edx, edx
movzx esi, word [eax + edx*4]
rol si, 8
movzx ecx, si
mov byte [ebx + edx*4], cl
shr ecx, 8
mov byte [ebx + edx*4 + 1], cl
movzx ecx, word [eax + edx*4 + 2]
rol cx, 8
movzx ecx, cx
mov byte [ebx + edx*4 + 2], cl
shr ecx, 8
mov byte [ebx + edx*4 + 3], cl
inc edx
cmp edx, edi
jb 0x41b598
mov ecx, dword [esp + 0x4c]
lea esi, [ebx + edx*4]
lea edx, [edx + edx + 1]
lea edi, [edx - 1]
cmp edi, dword [esp + 0x50]
jae 0x41adaa
movzx esi, word [eax + edx*2 - 2]
rol si, 8
movzx eax, si
lea esi, [ebx + edx*2]
mov byte [esi - 2], al
shr eax, 8
mov byte [esi - 1], al
jmp 0x41adaa
mov edx, 1
jmp 0x41b567
mov edx, 1
jmp 0x41b5d4
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x54], edx
test edx, edx
jbe 0x41b705
movzx edx, word [eax]
cmp edx, 0xfffe
je 0x41b691
mov edi, dword [esp + 0x54]
shr edi, 1
je 0x41b714
mov dword [esp + 0x4c], ecx
xor edx, edx
movzx ebx, word [eax + edx*4]
mov byte [esi + edx*4 + 0xe], bl
shr ebx, 8
mov byte [esi + edx*4 + 0xf], bl
movzx ecx, word [eax + edx*4 + 2]
mov byte [esi + edx*4 + 0x10], cl
shr ecx, 8
mov byte [esi + edx*4 + 0x11], cl
inc edx
cmp edx, edi
jb 0x41b63e
mov ecx, dword [esp + 0x4c]
lea ebx, [esi + edx*4 + 0xe]
lea edx, [edx + edx + 1]
lea edi, [edx - 1]
cmp edi, dword [esp + 0x54]
jae 0x41b705
movzx eax, word [eax + edx*2 - 2]
lea ebx, [esi + edx*2]
mov byte [ebx + 0xc], al
shr eax, 8
mov byte [ebx + 0xd], al
add ebx, 0xe
jmp 0x41b705
mov edi, dword [esp + 0x54]
shr edi, 1
je 0x41b71e
mov dword [esp + 0x4c], ecx
xor edx, edx
movzx ecx, word [eax + edx*4]
rol cx, 8
movzx ebx, cx
mov byte [esi + edx*4 + 0xe], bl
shr ebx, 8
mov byte [esi + edx*4 + 0xf], bl
movzx ebx, word [eax + edx*4 + 2]
rol bx, 8
movzx ecx, bx
mov byte [esi + edx*4 + 0x10], cl
shr ecx, 8
mov byte [esi + edx*4 + 0x11], cl
inc edx
cmp edx, edi
jb 0x41b6a3
mov ecx, dword [esp + 0x4c]
lea ebx, [esi + edx*4 + 0xe]
lea edx, [edx + edx + 1]
lea edi, [edx - 1]
cmp edi, dword [esp + 0x54]
jae 0x41b705
movzx ebx, word [eax + edx*2 - 2]
rol bx, 8
movzx eax, bx
lea ebx, [esi + edx*2]
mov byte [ebx + 0xc], al
shr eax, 8
mov byte [ebx + 0xd], al
add ebx, 0xe
xor eax, eax
mov byte [ebx], al
mov byte [ebx + 1], al
add ebx, 2
jmp 0x41ad85
mov edx, 1
jmp 0x41b66e
mov edx, 1
jmp 0x41b6e1
mov ecx, dword [esp + 0x474]
mov dword [esp + 0x474], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x41a8cd
jmp 0x41a507
mov ecx, dword [esp + 0x474]
mov dword [esp + 0x474], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x41a8cd
jmp 0x41a507