Function at 0x43b190
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x583ec0
mov eax, dword fs:[0]
push eax
sub esp, 0xd0
push ebx
push esi
push edi
mov eax, dword [0x5eb6e0]
xor eax, esp
push eax
lea eax, [esp + 0xe0]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x24], ebx
call fcn.0045dfd3
test ebx, ebx
jne 0x43b1d7
xor eax, eax
xor ecx, ecx
jmp 0x43b1dc
mov eax, dword [ebx + 0x20]
mov ecx, eax
push eax
push str.GlobalInstallNavi.epson.co.jp
push ecx
call dword [sym.imp.USER32.dll_SetPropW]
mov eax, dword [ebx + 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.00466e26
mov esi, eax
test esi, esi
je 0x43b31c
call fcn.00453e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43b21f
push 0x80004005
call fcn.004038e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push 0x65
mov dword [esp + 0xec], 0
call fcn.0045db34
test eax, eax
je 0x43b251
push 0x65
push eax
lea ecx, [esp + 0x20]
call fcn.00403150
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
je 0x43b2f1
mov edx, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_AppendMenuW]
push 0
push 0
push 0x800
push edx
call edi
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 4]
push eax
push 0x10
push 0
push ecx
call edi
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x5b7878
call fcn.00403320
push ecx
mov byte [esp + 0xf0], 1
mov ecx, esp
mov dword [esp + 0x38], esp
push str.Main
call fcn.00403320
lea edx, [esp + 0x24]
push edx
mov ecx, 0x5f38c8
mov byte [esp + 0xf4], 0
call fcn.00436360
mov eax, dword [eax]
push eax
mov eax, dword [esi + 4]
push 0x20
push 0
push eax
call edi
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b2f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xe8], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b31c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx + 0x98]
mov ecx, dword [ebx + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
push 1
push 0x80
push ecx
call esi
mov eax, dword [ebx + 0x98]
mov edx, dword [ebx + 0x20]
push eax
push 0
push 0x80
push edx
call esi
push 1
lea eax, [esp + 0x44]
push eax
mov ecx, 0x5f38c8
call fcn.00432310
push 0x5bc0e8
push eax
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0xf4], 2
call fcn.004024e0
add esp, 0xc
mov byte [esp + 0xe8], 4
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43b3a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
lea ecx, [esp + 0x34]
push ecx
mov ecx, 0x5f38c8
call fcn.00432310
push str._logo.png
push eax
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0xf4], 5
call fcn.004024e0
add esp, 0xc
mov byte [esp + 0xe8], 7
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b3f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3c]
push ecx
lea ecx, [ebx + 0x9c]
call fcn.00402f60
mov edx, dword [esp + 0x34]
lea esi, [ebx + 0xd4]
push edx
mov ecx, esi
call fcn.00402f60
mov edx, dword [ebx + 0x20]
mov eax, dword [ebx + 0xa8]
lea ecx, [esp + 0x44]
push ecx
push edx
mov dword [esp + 0x20], eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fidiv dword [esp + 0x18]
fstp dword [0x5f3aac]
cmp dword [ebx + 0xd8], 0
je 0x43b4fb
cmp dword [ebx + 0xec], 0x20
jne 0x43b4fb
mov eax, dword [ebx + 0xe4]
mov ecx, dword [ebx + 0xe0]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
test eax, eax
jle 0x43b4fb
xor edi, edi
cmp dword [esp + 0x1c], edi
jle 0x43b4ec
lea esp, [esp]
mov eax, dword [esi + 0x18]
imul eax, edi
cdq
and edx, 7
add eax, edx
mov edx, dword [esi + 0x14]
imul edx, dword [esp + 0x18]
sar eax, 3
add eax, edx
add eax, dword [esi + 8]
mov cl, byte [eax + 3]
cmp cl, 0xff
je 0x43b4e5
movzx edx, byte [eax]
movzx ecx, cl
imul edx, ecx
sub edx, 0xffffff80
sar edx, 8
mov byte [eax], dl
movzx edx, byte [eax + 1]
imul edx, ecx
sub edx, 0xffffff80
sar edx, 8
mov byte [eax + 1], dl
movzx edx, byte [eax + 2]
imul edx, ecx
sub edx, 0xffffff80
sar edx, 8
mov byte [eax + 2], dl
inc edi
cmp edi, dword [esp + 0x1c]
jl 0x43b490
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jl 0x43b484
lea esi, [ebx + 0x24c]
mov edi, 4
push 0
lea ecx, [esi - 0x20]
call fcn.0045abb2
call fcn.00460c32
mov eax, dword [eax + 4]
push 2
mov ecx, eax
call fcn.004329f0
test eax, eax
je 0x43b528
mov eax, dword [eax + 4]
push 1
push eax
mov eax, dword [esi]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
add esi, 0x58
sub edi, 1
jne 0x43b506
call fcn.00460c32
mov eax, dword [eax + 4]
push edi
mov ecx, eax
call fcn.004329f0
test eax, eax
je 0x43b555
mov eax, dword [eax + 4]
mov ecx, dword [ebx + 0x148]
push 1
push eax
push 0x30
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
call fcn.00460c32
mov eax, dword [eax + 4]
push 1
mov ecx, eax
call fcn.004329f0
test eax, eax
je 0x43b57f
mov eax, dword [eax + 4]
mov edx, dword [ebx + 0x1a0]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push eax
push 0x30
push edx
call esi
mov eax, dword [ebx + 0x3d4]
push 0x640000
push 0
push 0x401
push eax
call esi
mov edx, dword [ebx + 0x3b4]
mov eax, dword [edx + 0x148]
lea edi, [ebx + 0x3b4]
push 0
mov ecx, edi
call eax
push 2
lea ecx, [esp + 0x2c]
push ecx
mov ecx, 0x5f38c8
call fcn.00432310
push 9
push str.style.ini
lea ecx, [esp + 0x30]
mov byte [esp + 0xf0], 8
call fcn.00405900
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x5bc110
call fcn.00403320
push ecx
mov byte [esp + 0xf0], 9
mov ecx, esp
mov dword [esp + 0x20], esp
push str.Progress
call fcn.00403320
mov byte [esp + 0xf0], 0xa
mov esi, dword [esp + 0x30]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [esp + 0x20], esp
mov dword [esp + 0x20], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x43b64f
cmp eax, dword [esi]
jne 0x43b64f
mov ebx, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x43b68b
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x43b668
call fcn.00403750
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.0055065e
add esp, 0x10
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x38]
add ebx, 0x10
mov dword [ecx], ebx
push edx
mov byte [esp + 0xf8], 8
call fcn.00413730
add esp, 0xc
mov byte [esp + 0xec], 0xb
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x5bc12c
call fcn.00403320
push ecx
mov byte [esp + 0xf0], 0xc
mov ecx, esp
mov dword [esp + 0x20], esp
push str.Progress
call fcn.00403320
mov byte [esp + 0xf0], 0xd
mov esi, dword [esp + 0x30]
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
mov dword [esp + 0x20], esp
mov dword [esp + 0x20], esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x43b716
cmp eax, dword [esi]
jne 0x43b716
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x43b752
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x43b72f
call fcn.00403750
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.0055065e
add esp, 0x10
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x44]
add ebx, 0x10
mov dword [ecx], ebx
push edx
mov byte [esp + 0xf8], 0xb
call fcn.00413730
mov byte [esp + 0xf8], 0xe
mov esi, dword [esp + 0x3c]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x18], esp
mov dword [esp + 0x18], esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x43b7ab
cmp eax, dword [esi]
jne 0x43b7ab
mov ebx, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x43b7e7
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x43b7c4
call fcn.00403750
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.0055065e
add esp, 0x10
mov ecx, dword [esp + 0x18]
add ebx, 0x10
xor eax, eax
mov dword [ecx], ebx
call fcn.00411f90
mov esi, dword [esp + 0x3c]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
add esi, 0xfffffff0
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x18], esp
mov dword [esp + 0x18], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x43b82e
cmp eax, dword [esi]
jne 0x43b82e
mov ebx, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x43b86a
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x43b847
call fcn.00403750
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.0055065e
add esp, 0x10
mov ecx, dword [esp + 0x18]
add ebx, 0x10
xor eax, eax
mov dword [ecx], ebx
call fcn.00411f90
mov edx, dword [edi]
mov edx, dword [edx + 0x144]
add esp, 4
push eax
mov eax, dword [esp + 0x20]
push eax
push 0
push 0
mov ecx, edi
call edx
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x3d4]
push 0xff0000
push 0
push 0x2001
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
lea edi, [esp + 0x54]
call fcn.00401eb0
mov byte [esp + 0xe8], 0xf
mov ecx, 9
mov esi, 0x5f399c
lea edi, [esp + 0x54]
rep movsd dword es:[edi], dword [esi]
mov edi, 0x5f39c0
lea esi, [esp + 0x78]
call fcn.00401080
mov ecx, dword [0x5f3a08]
mov eax, dword [0x5f3a04]
mov edx, dword [0x5f3a00]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0xc0], ecx
mov ecx, dword [0x5f3a14]
mov dword [esp + 0xbc], eax
mov eax, dword [0x5f3a10]
mov dword [esp + 0xb8], edx
mov edx, dword [0x5f3a0c]
mov dword [esp + 0xcc], ecx
mov ecx, dword [0x5f3a1c]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc4], edx
mov edx, dword [0x5f3a18]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
mov dword [esp + 0xd0], edx
cmp eax, esi
je 0x43b99c
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x43b98b
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x43b98b
push eax
call fcn.00403760
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x43b97f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0xd4], ebx
jmp 0x43b99c
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0xdc]
call fcn.004036a0
mov ecx, dword [0x5f3a20]
mov esi, dword [esp + 0xd8]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x43ba00
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x43b9ef
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x43b9ef
push eax
call fcn.00403760
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x43b9e3
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0xd8], ebx
jmp 0x43ba00
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0xe0]
call fcn.004036a0
cmp dword [0x5f3af4], 0
je 0x43ba1c
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x20]
push 0
push 0x1f
push 0x2b15
push edx
jmp 0x43ba4c
cmp dword [esp + 0x90], 0
je 0x43ba3b
cmp dword [esp + 0x9c], 0
jne 0x43ba3b
mov esi, dword [esp + 0x24]
call fcn.0043bc60
jmp 0x43ba52
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x20]
push 0
push 1
push 0x2b15
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
lea edx, [esp + 0x20]
push edx
call fcn.00436d60
mov byte [esp + 0xe8], 0x10
cmp dword [0x5f3aa4], 0
je 0x43badc
mov ebx, dword [esp + 0x20]
call fcn.00411dd0
test eax, eax
jne 0x43badc
mov eax, dword [esp + 0x20]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00403760
add eax, 0x10
add esp, 4
lea edi, [esp + 0x18]
mov dword [esi], eax
call fcn.00411e80
add esp, 4
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xec], 0x11
call fcn.004037d0
mov byte [esp + 0xe8], 0x10
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43badc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
call fcn.0045aae7
mov byte [esp + 0xe8], 0xf
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43bb12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe8], 0xe
mov eax, dword [esp + 0xd8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bb3d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xd4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bb60
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esp + 0x78]
call fcn.00401fa0
mov byte [esp + 0xe8], 0xb
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bb91
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe8], 8
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bbb9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe8], 7
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bbe1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe8], 4
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bc09
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xe8], 0xffffffff
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bc34
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0xe0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret