Function at 0x403b1e
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x48
push ebx
mov ebx, dword [sym.imp.msvcrt.dll_malloc]
push ebp
push esi
push edi
push dword [0x406148]
xor edi, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call ebx
push dword [0x406148]
mov esi, eax
mov dword [esp + 0x38], esi
call ebx
push dword [0x406148]
mov dword [esp + 0x48], eax
call ebx
push dword [0x406148]
mov dword [esp + 0x44], eax
call ebx
push dword [0x406148]
mov dword [esp + 0x38], eax
call ebx
push dword [0x406148]
mov dword [esp + 0x2c], eax
call ebx
mov ebp, eax
push 0x28
mov dword [esp + 0x34], ebp
mov dword [esp + 0x44], edi
call ebx
push dword [0x406148]
call ebx
add esp, 0x20
mov byte [esi], 0
cmp dword [0x406058], edi
mov dword [esp + 0x10], edi
jl 0x404568
mov eax, dword [esp + 0x10]
mov ecx, dword [0x4060fc]
shl eax, 4
cmp byte [eax + ecx + 4], 0x67
mov dword [esp + 0x4c], eax
jne 0x403f20
xor edx, edx
cmp dword [0x406154], edx
jne 0x403d32
mov esi, dword [0x406070]
xor ecx, ecx
inc ecx
mov edi, 0x4051c9
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x403d32
cmp dword [0x406140], edx
je 0x403bf8
push str.tcr3
jmp 0x403c09
cmp dword [esp + 0x1c], edx
jne 0x403c19
cmp dword [esp + 0x20], edx
jne 0x403c19
push str.tcr1
push dword [esp + 0x18]
mov ebp, dword [sym.imp.msvcrt.dll_sprintf]
call ebp
pop ecx
pop ecx
jmp 0x403c35
push dword [esp + 0x20]
mov ebp, dword [sym.imp.msvcrt.dll_sprintf]
push dword [esp + 0x20]
push str.tcr2e0_de1_d
push dword [esp + 0x20]
call ebp
add esp, 0x10
push dword [0x4060ec]
push str.p_s
push dword [esp + 0x20]
call ebp
mov eax, dword [esp + 0x24]
add esp, 0xc
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403c4f
mov edi, dword [esp + 0x14]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403c5d
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [0x406134]
push str.id_s
push dword [esp + 0x20]
call ebp
mov eax, dword [esp + 0x24]
add esp, 0xc
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403c8d
mov edi, dword [esp + 0x14]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403c9b
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [0x40605c]
push dword [0x406084]
push str.cq_dsq_d
push dword [esp + 0x24]
call ebp
mov eax, dword [esp + 0x28]
add esp, 0x10
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403cd1
mov edx, dword [esp + 0x14]
mov edi, edx
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403ce1
mov ebp, dword [esp + 0x24]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x406070]
mov esi, ebp
mov cl, byte [eax]
inc eax
mov byte [esi], cl
inc esi
test cl, cl
jne 0x403d02
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403d11
lea ecx, [esp + 0x50]
push ecx
sub eax, esi
push eax
push edx
push ebp
call fcn.00401372
mov eax, dword [esp + 0x5c]
add esp, 0x10
xor edx, edx
jmp 0x403d36
mov ebp, dword [esp + 0x24]
mov ecx, dword [0x406070]
mov dword [0x406154], edx
mov byte [ecx], 0
mov ecx, dword [0x40607c]
mov byte [ecx], 0
mov ecx, dword [0x406134]
mov byte [ecx], 0
mov ecx, dword [esp + 0x10]
cmp ecx, dword [0x406058]
jne 0x403d88
test ecx, ecx
jle 0x403d88
mov ecx, dword [0x4060fc]
mov ecx, dword [eax + ecx]
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x403d72
push ebp
call fcn.0040256e
and dword [esp + 0x14], 0
pop ecx
mov edx, dword [esp + 0x28]
and dword [0x406084], 0
and dword [0x40605c], 0
mov eax, dword [0x406114]
mov dword [esp + 0x4c], eax
test edx, edx
jne 0x403dc3
mov eax, dword [esp + 0x10]
mov ecx, dword [0x4060fc]
shl eax, 4
mov ecx, dword [eax + ecx]
mov esi, ebp
mov al, byte [ecx]
inc ecx
mov byte [esi], al
inc esi
test al, al
jne 0x403db9
cmp edx, 1
jne 0x403e05
mov eax, dword [esp + 0x10]
mov esi, str.www.
mov edi, ebp
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ecx, dword [0x4060fc]
shl eax, 4
mov eax, dword [eax + ecx]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403de3
mov edi, ebp
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403def
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp edx, 2
jne 0x403e48
mov eax, dword [esp + 0x10]
mov esi, 0x4053b8
mov edi, ebp
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov ecx, dword [0x4060fc]
shl eax, 4
mov eax, dword [eax + ecx]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403e26
mov edi, ebp
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403e32
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp edx, 3
jne 0x403e8b
mov eax, dword [esp + 0x10]
mov esi, 0x4053b4
mov edi, ebp
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov ecx, dword [0x4060fc]
shl eax, 4
mov eax, dword [eax + ecx]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403e69
mov edi, ebp
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403e75
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp edx, 4
jne 0x403ece
mov eax, dword [esp + 0x10]
mov esi, 0x4053b0
mov edi, ebp
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov ecx, dword [0x4060fc]
shl eax, 4
mov eax, dword [eax + ecx]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403eac
mov edi, ebp
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403eb8
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebp
call fcn.00402e75
mov esi, eax
pop ecx
mov dword [esp + 0x1c], esi
test esi, esi
je 0x403f20
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
call fcn.00402ce0
mov eax, dword [esp + 0x54]
pop ecx
pop ecx
cmp dword [0x406114], eax
jne 0x403f20
dec dword [esp + 0x10]
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 4
jle 0x403f20
mov eax, dword [0x4060a8]
and dword [esp + 0x28], 0
imul eax, eax, 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x10]
mov ecx, dword [0x4060fc]
shl eax, 4
add eax, ecx
cmp byte [eax + 4], 0x73
jne 0x403fad
mov eax, dword [eax + 8]
test eax, eax
jle 0x403f49
imul eax, eax, 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x406058]
cmp dword [esp + 0x10], eax
jne 0x403fad
mov ecx, dword [0x4060fc]
shl eax, 4
mov byte [eax + ecx + 4], 0x67
mov eax, dword [0x4060fc]
mov eax, dword [eax]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403f6c
sub eax, esi
inc eax
push eax
call ebx
mov edx, dword [0x4060fc]
pop ecx
mov ecx, dword [0x406058]
shl ecx, 4
mov dword [ecx + edx], eax
mov edx, dword [0x406058]
mov eax, dword [0x4060fc]
mov ecx, dword [eax]
shl edx, 4
mov esi, dword [edx + eax]
mov al, byte [ecx]
inc ecx
mov byte [esi], al
inc esi
test al, al
jne 0x403f9f
dec dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [0x4060fc]
shl eax, 4
add eax, ecx
cmp byte [eax + 4], 0x74
jne 0x404550
push dword [0x406108]
xor ecx, ecx
xor edi, edi
inc edi
inc dword [0x40605c]
mov dword [0x40614c], ecx
mov dword [0x4060f4], edi
mov ebp, dword [eax + 0xc]
mov eax, dword [0x406124]
imul ebp, ebp, 0x14
add eax, ebp
mov esi, dword [eax + 0x10]
mov dword [0x406140], ecx
push dword [eax]
mov dword [esp + 0x54], edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], ebp
call fcn.00401efb
pop ecx
pop ecx
mov dword [esp + 0x1c], eax
test eax, eax
je 0x404038
cmp eax, 0x63
jne 0x404026
mov dword [0x406140], edi
jmp 0x404550
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [esp + 0x20]
call fcn.00402ce0
pop ecx
pop ecx
cmp dword [0x406140], 0
jne 0x404550
mov eax, dword [esi + 0x2c]
test eax, eax
jle 0x4040be
and dword [esp + 0x20], 0
test eax, eax
jle 0x4040be
xor edi, edi
push 0x400
push dword [esp + 0x38]
push dword [0x406030]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov eax, dword [esi + 0x30]
push 1
push 0
push 1
push dword [eax + edi + 8]
call fcn.004027e2
mov eax, dword [esi + 0x30]
add esp, 0x10
cmp dword [eax + edi + 0xc], 1
jne 0x40409a
lea ecx, [eax + edi]
mov eax, dword [0x406074]
cdq
sub eax, edx
sar eax, 1
add dword [ecx], eax
mov eax, dword [esi + 0x30]
add eax, edi
push 1
push dword [eax + 4]
push dword [eax]
call fcn.004024d3
add esp, 0xc
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
add edi, 0x10
cmp eax, dword [esi + 0x2c]
jl 0x404057
fld qword [esi]
call fcn.004014e6
fld qword [esi + 8]
push eax
call fcn.004014e6
push eax
call fcn.00401056
push eax
call fcn.00401083
add esp, 0xc
test eax, eax
je 0x404109
call fcn.004025d0
cmp dword [0x4060f8], 0
je 0x4040f5
push 0x14
cdq
pop ecx
idiv ecx
push 1
push 1
push 1
push eax
call fcn.004027e2
add esp, 0x10
jmp 0x4043d1
and dword [esp + 0x20], 0
mov dword [esp + 0x44], 1
push dword [esi + 0x18]
call fcn.00401072
mov edx, dword [esi + 0x14]
pop ecx
xor ecx, ecx
test edx, edx
jle 0x404137
mov edi, dword [esi + 0x1c]
cmp eax, dword [edi]
jle 0x404137
inc ecx
add edi, 4
cmp ecx, edx
jl 0x40412b
cmp ecx, dword [esi + 0x10]
jle 0x404144
mov dword [esp + 0x20], 0x64
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x64
jl 0x404116
xor eax, eax
inc ecx
inc eax
cmp ecx, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x20], eax
jl 0x4043d1
cmp dword [esi + 0x20], 0
jle 0x404226
push dword [esi + 0x24]
call fcn.00401072
pop ecx
mov ecx, dword [esi + 0x20]
xor edi, edi
test ecx, ecx
jle 0x40418e
mov edx, dword [esi + 0x28]
cmp eax, dword [edx]
jle 0x40418e
inc edi
add edx, 0x14
cmp edi, ecx
jl 0x404182
cmp edi, ecx
jne 0x4041ee
and dword [esp + 0x2c], 0
push dword [0x406074]
call fcn.00401072
push dword [0x40610c]
mov edi, eax
mov dword [esp + 0x40], edi
call fcn.00401072
pop ecx
pop ecx
mov ecx, dword [esi + 0x20]
mov ebp, eax
test ecx, ecx
jle 0x4041e5
mov eax, dword [esi + 0x28]
add eax, 0xc
cmp edi, dword [eax - 8]
jl 0x4041d7
cmp edi, dword [eax]
jg 0x4041d7
cmp ebp, dword [eax - 4]
jl 0x4041d7
cmp ebp, dword [eax + 4]
jle 0x4041df
mov dword [esp + 0x2c], 0x64
add eax, 0x14
dec ecx
jne 0x4041c4
cmp dword [esp + 0x2c], 0x64
jl 0x404197
jmp 0x404244
mov eax, dword [esi + 0x28]
imul edi, edi, 0x14
mov ecx, dword [esi + 0x28]
add eax, edi
lea ebp, [edi + ecx]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 4]
push ecx
call fcn.00401072
add eax, dword [ebp + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp + 8]
push eax
call fcn.00401072
mov ebp, eax
mov eax, dword [esi + 0x28]
add ebp, dword [edi + eax + 8]
jmp 0x404242
push dword [0x406074]
call fcn.00401072
push dword [0x40610c]
mov dword [esp + 0x40], eax
call fcn.00401072
mov ebp, eax
pop ecx
pop ecx
add ebp, dword [0x40613c]
cmp dword [esp + 0x4c], 0
je 0x404294
call fcn.004025d0
push 1
push 1
push 1
push eax
call fcn.004027e2
mov edi, dword [esp + 0x44]
and dword [esp + 0x5c], 0
add esp, 0x10
push 0x400
push edi
push dword [0x406030]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [esp + 0x3c]
mov eax, edi
sub ecx, edi
mov dl, byte [eax]
mov byte [eax + ecx], dl
inc eax
test dl, dl
jne 0x404288
jmp 0x404298
mov edi, dword [esp + 0x34]
call fcn.004025d0
push 0
push ebp
push dword [esp + 0x40]
mov dword [esp + 0x38], eax
call fcn.004024d3
inc dword [0x40614c]
inc dword [0x406084]
inc dword [esp + 0x2c]
push 1
push 1
push 1
push dword [esp + 0x44]
call fcn.004027e2
add esp, 0x1c
push 0x400
push edi
push dword [0x406030]
call dword [sym.imp.USER32.dll_GetWindowTextA]
test eax, eax
jle 0x4043b4
mov ebp, dword [esp + 0x3c]
mov eax, edi
mov cl, byte [eax]
cmp cl, byte [ebp]
jne 0x40430e
test cl, cl
je 0x40430a
mov cl, byte [eax + 1]
cmp cl, byte [ebp + 1]
jne 0x40430e
inc eax
inc eax
inc ebp
inc ebp
test cl, cl
jne 0x4042ef
xor eax, eax
jmp 0x404313
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4043b4
mov ecx, dword [esp + 0x3c]
inc dword [esp + 0x40]
sub ecx, edi
mov al, byte [edi]
mov byte [edi + ecx], al
inc edi
test al, al
jne 0x404325
mov eax, dword [0x406124]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
cmp edx, dword [ecx + eax + 0xc]
jge 0x4043a5
inc dword [0x4060f4]
inc dword [0x40605c]
fld qword [esi]
call fcn.004014e6
fld qword [esi + 8]
push eax
call fcn.004014e6
push eax
call fcn.00401056
push eax
call fcn.00401083
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
je 0x40439d
xor edi, edi
push 0x4e
inc edi
push edi
call fcn.0040103d
cmp dword [0x4060f8], 0
pop ecx
pop ecx
je 0x404391
push 0x14
cdq
pop ecx
idiv ecx
push edi
push edi
push edi
push eax
call fcn.004027e2
add esp, 0x10
inc dword [0x406144]
jmp 0x4043ad
mov dword [esp + 0x44], 1
mov eax, dword [esi + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x54]
jle 0x404163
cmp dword [esp + 0x44], 0
mov ebp, dword [esp + 0x48]
je 0x404109
call fcn.00401c86
mov esi, eax
mov dword [esp + 0x20], esi
test esi, esi
je 0x4043ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
call fcn.00402ce0
pop ecx
pop ecx
mov eax, dword [0x406124]
mov esi, dword [eax + ebp + 4]
xor ecx, ecx
inc ecx
mov edi, 0x4051c9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x404550
cmp dword [esp + 0x1c], eax
jne 0x404429
cmp dword [esp + 0x20], eax
jne 0x404429
push str.ttr1
push dword [esp + 0x18]
call dword [sym.imp.msvcrt.dll_sprintf]
pop ecx
pop ecx
jmp 0x404443
push dword [esp + 0x20]
push dword [esp + 0x20]
push str.ttr2e0_de1_d
push dword [esp + 0x20]
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0x10
push dword [0x4060ec]
push str.p_s
push dword [esp + 0x20]
call dword [sym.imp.msvcrt.dll_sprintf]
mov eax, dword [esp + 0x24]
add esp, 0xc
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404461
mov edi, dword [esp + 0x14]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40446f
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x406124]
push dword [eax + ebp + 8]
push str.i_s
push dword [esp + 0x20]
call dword [sym.imp.msvcrt.dll_sprintf]
mov eax, dword [esp + 0x24]
add esp, 0xc
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4044a6
mov edi, dword [esp + 0x14]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4044b4
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [0x4060f4]
push dword [0x40614c]
push str.cq_dsq_d
push dword [esp + 0x24]
call dword [sym.imp.msvcrt.dll_sprintf]
mov eax, dword [esp + 0x28]
add esp, 0x10
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4044ee
mov edi, dword [esp + 0x14]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4044fc
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x406124]
mov ebp, dword [eax + ebp + 4]
mov ecx, dword [esp + 0x24]
mov al, byte [ebp]
inc ebp
mov byte [ecx], al
inc ecx
test al, al
jne 0x40451f
mov eax, dword [esp + 0x14]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404531
lea ecx, [esp + 0x50]
push ecx
sub eax, esi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x30]
call fcn.00401372
add esp, 0x10
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [0x406058]
jle 0x403ba7
mov ebp, dword [esp + 0x18]
mov esi, dword [0x406070]
mov ebx, dword [sym.imp.msvcrt.dll_sprintf]
xor ecx, ecx
inc ecx
mov edi, 0x4051c9
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40469e
cmp dword [esp + 0x1c], eax
jne 0x4045a1
cmp dword [esp + 0x20], eax
jne 0x4045a1
push str.tcr1
push dword [esp + 0x18]
call ebx
pop ecx
pop ecx
jmp 0x4045b7
push dword [esp + 0x20]
push dword [esp + 0x20]
push str.tcr2e0_de1_d
push dword [esp + 0x20]
call ebx
add esp, 0x10
push dword [0x4060ec]
push str.p_s
push ebp
call ebx
mov eax, ebp
add esp, 0xc
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4045cc
mov edi, dword [esp + 0x14]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4045da
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [0x406134]
push str.id_s
push ebp
call ebx
mov eax, ebp
add esp, 0xc
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404605
mov edi, dword [esp + 0x14]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x404613
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [0x40605c]
push dword [0x406084]
push str.cq_dsq_d
push ebp
call ebx
mov eax, ebp
add esp, 0x10
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404644
mov ebp, dword [esp + 0x14]
mov edi, ebp
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x404654
mov edx, dword [esp + 0x24]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x406070]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x404673
mov eax, ebp
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404682
lea ecx, [esp + 0x50]
push ecx
sub eax, esi
push eax
push ebp
push dword [esp + 0x30]
call fcn.00401372
add esp, 0x10
cmp dword [esp + 0x1c], 0
jne 0x4046bc
mov edi, dword [esp + 0x30]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4046aa
mov esi, 0x405388
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x4046ce
push dword [esp + 0x1c]
push str.Error:__d
push dword [esp + 0x38]
call ebx
add esp, 0xc
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret