Function at 0x40d3e0
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x100
mov esi, esp
mov dword [esi + 0xe8], ebp
lea eax, [esi + 0xf0]
mov dword [esi + 0x3c], ecx
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [esi + 0xc], edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x4810b0
mov ecx, dword fs:[0]
test edi, edi
mov dword [eax], ecx
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [esi + 0xd8], edx
mov dword [esi + 0xdc], edi
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], ecx
je 0x40d54f
js 0x40e0cf
mov al, byte [0x4f8d7c]
xor edx, edx
mov ecx, edi
inc edx
call fcn.00412aa0
test eax, eax
je 0x40e0d6
cmp edi, 8
jb 0x40d55c
movaps xmm0, xmmword [0x494230]
movdqa xmm3, xmmword [0x494260]
xor edi, edi
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
movq xmm4, qword [eax + edi]
movdqa xmm5, xmm4
movd edx, xmm4
shufps xmm5, xmm4, 0x55
movd ecx, xmm5
mov ebx, ecx
or ebx, edx
test ebx, 0x80808080
jne 0x40d554
mov dword [esi + 8], edi
mov edi, edx
mov ebx, edx
shr edx, 8
mov eax, dword [esi + 4]
shr edi, 0x10
movd xmm5, edx
mov edx, ecx
shr ebx, 0x18
movd xmm6, edi
mov edi, ecx
movd xmm7, ebx
shr ecx, 8
shr edx, 0x18
punpcklqdq xmm5, xmm4
shr edi, 0x10
movd xmm1, ecx
punpcklqdq xmm7, xmm6
movd xmm6, edx
mov edx, dword [esi + 8]
movd xmm2, edi
shufps xmm1, xmm4, 0xd4
shufps xmm5, xmm7, 0x22
punpcklqdq xmm6, xmm2
andps xmm5, xmm0
shufps xmm1, xmm6, 0x22
andps xmm1, xmm0
lea ecx, [edx + 8]
packuswb xmm5, xmm1
mov edi, ecx
packuswb xmm5, xmm5
movdqa xmm1, xmm5
paddb xmm1, xmmword [0x494240]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x494250]
pcmpeqb xmm2, xmm1
pandn xmm2, xmm3
pxor xmm2, xmm5
movq qword [eax + edx], xmm2
add edx, 0x10
cmp edx, dword [ebp + 8]
jbe 0x40d485
mov edi, dword [ebp + 8]
mov ebx, ecx
jmp 0x40d55c
xor eax, eax
inc eax
jmp 0x40d55c
mov ebx, edi
mov edi, dword [ebp + 8]
mov eax, dword [esi + 4]
cmp ebx, edi
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], ebx
mov dword [esi + 4], edi
jne 0x40d6e4
lea edx, [esi + 0x24]
lea ecx, [esi + 0x40]
mov eax, dword [edx + 8]
movsd xmm0, qword [edx]
mov dword [edx], str.failed_to_write_the_buffered_data
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0x3c]
movsd qword [esi + 0xc0], xmm0
lea edi, [eax + 0xcc]
lea eax, [esi + 0xe0]
mov dword [ecx], eax
mov dword [ecx + 4], fcn.00456052
mov dword [ecx + 8], edi
mov dword [esi + 0xd4], edi
mov dword [ecx + 0xc], fcn.00422d30
push 2
pop eax
mov dword [edx + 4], eax
and dword [edx + 0x10], 0
mov dword [edx + 8], ecx
lea ecx, [esi + 0x60]
mov dword [edx + 0xc], eax
mov dword [esi + 0xf8], 1
call fcn.00403184
mov eax, dword [esi + 0x68]
lea edx, [esi + 0xb0]
movsd xmm0, qword [esi + 0x60]
mov byte [esi + 3], 1
mov dword [esi + 0xf8], 2
mov dword [edx + 8], eax
mov eax, dword [esi + 0x3c]
movsd qword [edx], xmm0
lea ecx, [eax + 0x80]
call fcn.004017e1
mov byte [esi + 0x1a], al
cmp byte [esi + 0x1a], 0
je 0x40d894
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0xc8]
xor edx, edx
mov byte [esi + 3], 1
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
call fcn.0041eca9
mov dword [esi + 4], edx
mov edi, dword [esi + 0xc]
push edi
push dword [esi + 8]
push eax
mov ebx, eax
call fcn.00483360
add esp, 0xc
mov eax, ebx
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0x3c]
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 0x14]
mov dword [esi + 0x28], ecx
mov ecx, dword [ebx + 0x10]
mov dword [esi + 0x2c], edi
push edi
push eax
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
call fcn.0043029b
add esp, 0x10
mov edi, edx
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
mov dword [esi + 0xac], eax
lea eax, [esi + 0x24]
mov dword [esi + 0xf8], 9
mov dword [esi + 0x60], eax
lea eax, [esi + 0x60]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ebx
push 0x403ba4
lea eax, [esi + 0x40]
push eax
mov dword [esi + 0xd0], edi
push edi
push dword [esi + 0xac]
call fcn.004321ed
add esp, 0x10
test eax, eax
mov eax, dword [esi + 0x3c]
je 0x40d8ea
mov ebx, dword [eax]
test ebx, ebx
je 0x40d8ea
mov edi, edx
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
call fcn.0041529f
neg edi
imul eax, edi, 0x1c
add ebx, eax
jmp 0x40de0f
mov eax, dword [esi + 0xc]
add dword [esi + 4], eax
add ebx, eax
mov cl, byte [ebx]
movzx edx, cl
test cl, cl
js 0x40d6fb
inc ebx
mov dword [esi + 8], ebx
jmp 0x40d767
movzx edi, byte [ebx + 1]
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x40d747
movzx eax, byte [ebx + 2]
shl edi, 6
and eax, 0x3f
or eax, edi
cmp cl, 0xf0
jb 0x40d754
movzx ecx, byte [ebx + 3]
and edx, 7
shl eax, 6
mov edi, edx
shl edi, 0x12
and ecx, 0x3f
or ecx, eax
mov edx, ecx
or edx, edi
cmp edx, 0x110000
je 0x40d570
add ebx, 4
mov dword [esi + 8], ebx
jmp 0x40d75f
shl edx, 6
add ebx, 2
mov dword [esi + 8], ebx
or edx, edi
jmp 0x40d75f
shl edx, 0xc
add ebx, 3
mov dword [esi + 8], ebx
or edx, eax
cmp edx, 0x80
jae 0x40d79e
mov eax, edx
xor ecx, ecx
add al, 0x9f
cmp al, 0x1a
setb cl
and dword [esi + 0xf8], 0
shl ecx, 5
xor edx, ecx
and dword [esi + 0xf8], 0
lea ecx, [esi + 0x24]
call fcn.0041dd00
mov ebx, dword [esi + 8]
cmp ebx, dword [esi + 4]
jne 0x40d6ec
jmp 0x40d570
mov dword [esi + 0xc], edx
xor edi, edi
mov eax, 0x5db
mov edx, 0x5db
mov ecx, dword [esi + 0xc]
shr eax, 1
xor ebx, ebx
add eax, edi
cmp dword [eax*8 + 0x49a6b0], ecx
mov ecx, 0xff
setne bl
cmovb ebx, ecx
cmp bl, 1
je 0x40d7df
movzx edi, bl
cmp edi, 0xff
jne 0x40d7ed
inc eax
mov edi, eax
mov eax, edx
jmp 0x40d7e1
mov edx, eax
sub eax, edi
ja 0x40d7ad
mov edx, dword [esi + 0xc]
xorps xmm0, xmm0
jmp 0x40d833
mov eax, dword [eax*8 + 0x49a6b4]
cmp eax, 0x110000
je 0x40d814
mov ecx, eax
xorps xmm0, xmm0
xor ecx, 0xd800
add ecx, 0xffef0000
cmp ecx, 0xffef07ff
ja 0x40d831
and eax, 0x3fffff
imul ecx, eax, 0xc
mov eax, dword [ecx + 0x49d588]
cmp eax, 0x110000
je 0x40d7e5
movsd xmm0, qword [ecx + 0x49d58c]
mov edx, eax
movd eax, xmm0
test eax, eax
je 0x40d77e
pshufd xmm0, xmm0, 0x55
and dword [esi + 0xf8], 0
mov dword [esi + 0xc], eax
movd eax, xmm0
test eax, eax
je 0x40d87c
lea ecx, [esi + 0x24]
mov dword [esi + 0x14], eax
call fcn.0041dd00
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0x24]
call fcn.0041dd00
mov edx, dword [esi + 0x14]
lea ecx, [esi + 0x24]
call fcn.0041dd00
jmp 0x40d78d
lea ecx, [esi + 0x24]
call fcn.0041dd00
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0x24]
call fcn.0041dd00
jmp 0x40d78d
mov eax, dword [0x4f8c94]
cmp eax, 3
jb 0x40e058
lea ecx, [esi + 0x24]
lea eax, [esi + 0xb0]
mov byte [esi + 3], 1
mov dword [ecx], str.Couldnt_find_MESSAGE.__so_Im_done
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [esi + 0x40], eax
lea eax, [esi + 0x40]
mov dword [esi + 0x44], fcn.0040343a
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
push 3
pop edx
push 0x4950a0
call fcn.0043151f
pop eax
jmp 0x40e058
cmp dword [eax + 8], 0
jne 0x40d8fb
mov ecx, dword [esi + 0x3c]
lea edx, [ecx + 0x10]
call fcn.00490f78
mov eax, dword [esi + 0x24]
lea edx, [esi + 0x94]
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xa4], eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0xa8], eax
mov eax, dword [esi + 8]
mov dword [edx], eax
mov eax, dword [esi + 0x2c]
mov dword [edx + 4], ecx
mov dword [esi + 0xcc], eax
mov eax, dword [0x4f8c94]
cmp eax, 2
jbe 0x40d97b
lea eax, [esi + 0x94]
lea ecx, [esi + 0x24]
lea edx, [esi + 0x40]
mov dword [esi + 0xf8], 3
mov dword [esi + 0x40], eax
xor eax, eax
mov dword [ecx], str.Looking_up_name_DVI
mov dword [esi + 0x44], fcn.00470481
inc eax
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
push 3
pop edx
push 0x49565c
call fcn.0043151f
pop eax
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x40da0c
mov dword [esi + 0x9c], str.select__from_PT_CONTC_where__ON_CALL___order_by_NAME_ON_CALL
mov dword [esi + 0xa0], 0x36
mov eax, dword [0x4f8c94]
mov dword [esi + 0xf8], 3
cmp eax, 2
jbe 0x40da13
lea eax, [esi + 0x9c]
lea ecx, [esi + 0x94]
mov dword [esi + 0x40], eax
mov eax, fcn.00470481
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], ecx
lea ecx, [esi + 0x24]
mov dword [esi + 0x4c], eax
mov dword [ecx], 0x4956b8
push 2
pop edx
mov dword [ecx + 4], edx
and dword [ecx + 0x10], 0
lea eax, [esi + 0x40]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
push 3
pop edx
push 0x4956c8
call fcn.0043151f
pop eax
mov ecx, dword [esi + 0xa0]
mov eax, dword [esi + 0x9c]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x98]
mov dword [esi + 8], eax
jmp 0x40da20
xor ebx, ebx
jmp 0x40dd97
mov dword [esi + 8], str.select__from_PT_CONTC_where__ON_CALL___order_by_NAME_ON_CALL
push 0x36
pop eax
mov dword [esi + 4], eax
mov eax, dword [esi + 0x94]
xor edx, edx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x84], eax
call fcn.0041eca9
mov dword [esi + 0x14], edx
mov ebx, eax
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0xc]
add eax, 0xe0
mov dword [esi + 0x70], eax
push edi
push dword [esi + 0x84]
push ebx
call fcn.00483360
add esp, 0xc
lea ecx, [esi + 0x24]
mov byte [esi + 0x40], 5
mov edx, dword [esi + 0x70]
mov dword [esi + 0xf8], 8
movzx eax, word [ecx]
mov word [esi + 0x41], ax
mov al, byte [ecx + 2]
mov byte [esi + 0x43], al
mov eax, dword [esi + 0x14]
mov dword [esi + 0x44], ebx
mov dword [esi + 0x48], eax
lea eax, [esi + 0x40]
mov dword [esi + 0x4c], edi
push eax
push dword [esi + 4]
push dword [esi + 8]
call fcn.00418c48
add esp, 0xc
lea ecx, [esi + 0x60]
lea edx, [esi + 0x24]
push 0x4956e4
push dword [esi + 0xa0]
push dword [esi + 0x9c]
call fcn.00402c52
add esp, 0xc
lea ecx, [esi + 0x40]
call fcn.0040265a
xor edi, edi
lea ecx, [esi + 0x24]
mov edx, dword [esi + 0x6c]
mov dword [esi + 4], eax
mov dword [esi + 0x14], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], eax
mov dword [esi + 0xf8], 4
call section..text
mov eax, dword [esi + 0x14]
lea ecx, [esi + 0x24]
mov edx, 0x4956f4
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 4]
mov dword [esi + 0x20], eax
call fcn.00402ef6
test al, al
jne 0x40dd74
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x6c]
mov dword [esi + 0x20], ecx
mov dword [esi + 0x1c], eax
lea ecx, [esi + 0x24]
push 4
push str.Type
call fcn.004010c3
pop eax
pop ecx
xor ecx, ecx
xor edx, edx
mov dword [esi + 0xf8], 7
inc ecx
call fcn.0041eca9
mov byte [eax], 0x30
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
lea edx, [esi + 0x24]
lea eax, [esi + 0x40]
mov dword [esi + 0x48], 1
lea ecx, [esi + 0x88]
push eax
call fcn.00402fe2
pop eax
mov edx, dword [esi + 0x90]
test edx, edx
je 0x40e0c6
mov ecx, dword [esi + 0x88]
movzx eax, byte [ecx]
cmp eax, 0x2d
je 0x40db87
cmp eax, 0x2b
jne 0x40db93
dec edx
je 0x40e091
lea edi, [ecx + 1]
jmp 0x40db95
cmp edx, 1
mov edi, ecx
jne 0x40db95
jmp 0x40e091
mov edi, ecx
xor eax, eax
cmp edx, 3
mov dword [esi + 0x84], ecx
jae 0x40dbc1
movzx ecx, byte [edi]
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x40e091
movzx eax, al
inc edi
imul eax, eax, 0xa
add cl, al
dec edx
mov eax, ecx
jne 0x40dba2
jmp 0x40dbfb
test edx, edx
je 0x40dbf9
movzx ebx, byte [edi]
mov dword [esi + 0xc], edx
add ebx, 0xffffffd0
cmp ebx, 0xa
cmovb ecx, ebx
jae 0x40e091
mov ah, 0xa
mov dl, 2
mul ah
mov dword [esi + 8], edx
jo 0x40e096
mov edx, dword [esi + 0xc]
inc edi
dec edx
add al, cl
mov ecx, ebx
jae 0x40dbc1
jmp 0x40e096
mov ecx, eax
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 0x8c]
mov ecx, dword [esi + 0x84]
call fcn.00434602
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x40dc7d
mov eax, dword [0x4f8c94]
mov edi, dword [esi + 4]
mov dword [esi + 0xf8], 4
cmp eax, 2
jb 0x40dd23
xor edx, edx
mov dword [esi + 0x24], 0x495734
lea eax, [esi + 0x94]
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], edi
lea ecx, [esi + 0x24]
inc edx
mov dword [esi + 0x40], eax
lea eax, [esi + 0x40]
mov dword [esi + 0x44], fcn.00470481
mov dword [esi + 0x28], edx
and dword [esi + 0x34], 0
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], edx
push 2
pop edx
push 0x49573c
call fcn.0043151f
pop eax
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x14]
jmp 0x40dd23
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x6c]
and dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
push 4
pop edi
mov dword [esi + 0xf8], edi
lea ecx, [esi + 0x24]
push edi
push 0x4b06a6
call fcn.004010c3
pop eax
pop ecx
mov dword [esi + 0x40], 1
and dword [esi + 0x44], 0
and dword [esi + 0x48], 0
lea edx, [esi + 0x24]
lea eax, [esi + 0x40]
lea ecx, [esi + 0x88]
push eax
call fcn.00402fe2
pop eax
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x90]
call fcn.0042858e
mov ecx, edx
mov dword [esi + 0x70], edx
xor edx, edx
mov dword [esi + 8], eax
mov dword [esi + 0xf8], 5
call fcn.0041eca9
mov edi, edx
push dword [esi + 0x70]
push dword [esi + 8]
push eax
mov ebx, eax
call fcn.00483360
add esp, 0xc
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x8c]
call fcn.00434602
mov edx, dword [esi + 4]
xor ecx, ecx
call fcn.0041529f
mov eax, dword [esi + 0xc]
mov byte [esi + 0x5f], al
mov edx, dword [esi + 0x6c]
lea ecx, [esi + 0x24]
mov dword [esi + 4], edi
mov dword [esi + 0x14], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], edi
mov dword [esi + 0xf8], 4
call fcn.0040106d
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 4]
mov edx, str.MoveNext
mov dword [esi + 0x20], ecx
mov dword [esi + 0x1c], eax
lea ecx, [esi + 0x24]
push 0x495758
push 8
call fcn.00402e67
pop eax
pop ecx
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x14]
lea ecx, [esi + 0x24]
jmp 0x40dac4
movzx ecx, word [esi + 0x24]
mov al, byte [esi + 0x26]
mov dword [esi + 0xf8], 3
mov word [esi + 0x40], cx
lea ecx, [esi + 0x60]
mov byte [esi + 0x42], al
call fcn.00402203
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x3c]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
push dword [esi + 0xd0]
push dword [esi + 0xac]
call fcn.00403f81
pop ecx
pop ecx
and dl, 1
mov ecx, dword [edi]
neg eax
movzx edx, dl
imul eax, eax, 0x1c
sub dword [edi + 8], edx
mov edx, dword [esi + 0xa4]
mov dword [ecx + eax - 0x1c], edx
mov edx, dword [esi + 0xa8]
mov dword [ecx + eax - 0x18], edx
mov edx, dword [esi + 0xcc]
mov dword [ecx + eax - 0x14], edx
mov edx, dword [esi + 4]
mov dword [ecx + eax - 0x10], ebx
lea ebx, [ecx + eax]
mov dword [ecx + eax - 0xc], edx
mov edx, dword [esi + 0x70]
mov dword [ecx + eax - 8], edx
mov dl, byte [esi + 0x5f]
mov byte [ecx + eax - 4], dl
movzx edx, word [esi + 0x40]
mov word [ecx + eax - 3], dx
mov dl, byte [esi + 0x42]
mov byte [ecx + eax - 1], dl
inc dword [edi + 0xc]
mov edx, dword [ebx - 0x10]
test edx, edx
je 0x40df73
mov eax, dword [ebx - 8]
mov dword [esi + 0xc], ebx
mov byte [esi + 3], 1
mov dword [esi + 0xf8], 2
lea ecx, [esi + 0x24]
push eax
call fcn.0041de00
pop eax
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
test edx, edx
je 0x40df73
mov cl, byte [eax - 4]
movzx eax, word [esi + 0xbd]
mov dword [esi + 0xc], edx
mov dl, byte [esi + 0xbf]
mov edi, dword [esi + 0x28]
mov word [esi + 0x81], ax
mov byte [esi + 0x83], dl
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x2c]
mov dword [esi + 8], edi
mov dword [esi + 0x74], edx
mov dword [esi + 0x78], edi
mov dword [esi + 0x7c], eax
mov byte [esi + 0x80], cl
movzx ecx, cl
test ecx, ecx
je 0x40dfa0
cmp ecx, 5
lea ecx, [esi + 0x60]
je 0x40dfa3
mov ecx, dword [0x4f8c94]
cmp ecx, 2
jbe 0x40df0b
lea eax, [esi + 0xb0]
lea ecx, [esi + 0x40]
mov dword [esi + 0x24], eax
lea eax, [esi + 0xd8]
mov dword [esi + 0x28], fcn.0040343a
mov dword [ecx], str.failed_to_write_the_buffered_data
mov dword [esi + 0x2c], eax
lea eax, [esi + 0x74]
mov dword [esi + 0x30], fcn.00470481
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], 0x40308c
push 3
pop edx
mov dword [ecx + 4], edx
and dword [ecx + 0x10], 0
lea eax, [esi + 0x24]
mov byte [esi + 0x13], 1
mov dword [esi + 0xf8], 0xa
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
push 0x49514c
call fcn.0043151f
pop eax
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0xb8]
movsd xmm0, qword [esi + 0xb0]
mov byte [esi + 0x1b], 1
mov dword [esi + 0xf8], 0xb
mov dword [esi + 0x48], ecx
movsd qword [esi + 0x40], xmm0
lea ecx, [esi + 0x24]
push eax
call fcn.0041de00
pop eax
mov edx, dword [esi + 0x3c]
lea eax, [esi + 0x24]
mov byte [esi + 0x1b], 0
lea ecx, [esi + 0x60]
add edx, 0x40
push eax
lea eax, [esi + 0x40]
push eax
call fcn.004307e3
pop eax
pop ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x64]
call fcn.0041529f
mov eax, dword [esi + 0xd4]
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
inc dword [eax]
jmp 0x40e064
mov dword [esi + 0x74], 1
and dword [esi + 0x78], 0
and dword [esi + 0x7c], 0
xor eax, eax
mov byte [esi + 0x80], 0
mov dword [esi + 0xf8], 0xa
mov dword [esi + 8], 0
inc eax
mov dword [esi + 0xc], eax
lea ecx, [esi + 0x60]
lea edx, [esi + 0x24]
lea eax, [esi + 0xd8]
mov byte [esi + 0x13], 1
mov dword [esi + 0xf8], 0xa
mov dword [edx], str.Contact__is_a_Printer__or_doesnt_exist__and_no_lookup_found_in_steps_table
mov dword [edx + 4], 2
and dword [edx + 0x10], 0
mov dword [edx + 8], ecx
lea ecx, [esi + 0x40]
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], fcn.00470481
mov dword [edx + 0xc], 1
call fcn.00403184
movsd xmm0, qword [esi + 0x40]
mov eax, dword [esi + 0x48]
movsd qword [esi + 0x60], xmm0
mov dword [esi + 0x68], eax
mov eax, dword [0x4f8c94]
cmp eax, 2
jb 0x40e042
lea eax, [esi + 0x60]
lea ecx, [esi + 0x24]
lea edx, [esi + 0x40]
mov dword [esi + 0xf8], 0xc
mov dword [esi + 0x40], eax
xor eax, eax
mov dword [ecx], str.failed_to_write_the_buffered_data
mov dword [esi + 0x44], fcn.0040343a
inc eax
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
push 2
pop edx
push 0x495118
call fcn.0043151f
pop eax
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x64]
call fcn.00434602
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
call fcn.00434602
mov ecx, dword [esi + 0xb0]
mov edx, dword [esi + 0xb4]
call fcn.00434602
mov ecx, dword [esi + 0xc0]
mov edx, dword [esi + 0xc4]
call fcn.00434602
mov eax, dword [esi + 0xf0]
mov dword fs:[0], eax
mov al, byte [esi + 0x1a]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, 1
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xf8], 6
mov byte [esi + 0x24], al
push 2
pop edx
mov ecx, 0x4e8099
push 0x495708
push 0x494450
lea eax, [esi + 0x24]
push eax
call fcn.00491640
add esp, 0xc
ud2
mov dword [esi + 8], 0
jmp 0x40e096
call fcn.0041d320
ud2
xor ecx, ecx
mov edx, edi
inc ecx
call fcn.004911b0
ud2