Function at 0x4180a0
Capabilities:
Check mutex on windows
Get file size
Hide graphical window
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1388
call fcn.005817c0
mov eax, dword [0x5f3008]
xor eax, esp
mov dword [esp + 0x1384], eax
mov eax, dword [ebp + 8]
xor edx, edx
push esi
mov esi, dword [0x6167a4]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [0x6167e8]
mov ecx, dword [esi + 0x3a14]
mov dword [esp + 0x38], eax
mov eax, dword [0x616724]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x38]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x60], esi
mov eax, dword [eax]
mov dword [esp + 0x40], edx
test eax, eax
je 0x41810d
mov eax, dword [eax]
inc edx
test eax, eax
jne 0x418102
mov dword [esp + 0x40], edx
mov eax, dword [ecx + 0x34]
xor edx, edx
mov dword [esp + 0x44], edx
mov eax, dword [eax]
test eax, eax
je 0x41812b
nop dword [eax]
mov eax, dword [eax]
inc edx
test eax, eax
jne 0x418120
mov dword [esp + 0x44], edx
mov dword [ecx + 0x344], 0
xor ecx, ecx
mov eax, dword [esi + 0x3a14]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x68], 0
mov dword [eax + 0x348], 0
mov eax, dword [esi + 0x3a14]
mov dword [esp + 0x50], 0
mov word [eax + 0x21bfc], cx
mov eax, dword [esp + 0x18]
mov dword [eax], ecx
cmp byte [ebp + 0x18], cl
je 0x4181c4
push str.OYAZIVIEWER_CONV_MUTEX
push ecx
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [esi], eax
test eax, eax
jne 0x4181bb
mov eax, dword [esp + 0x18]
mov dword [eax], 0x270f
mov eax, 0x2329
pop edi
pop esi
mov ecx, dword [esp + 0x1384]
xor ecx, esp
call fcn.0056060a
mov esp, ebp
pop ebp
ret 0x18
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esp + 0x24]
test edi, edi
setle al
xor edi, edi
mov byte [esi + 0x3a1d], al
add ecx, 0x800
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x1c], eax
nop dword [eax + eax]
push 0
push 0x8000000
push 3
push 0
push 3
push SysReAllocString
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esi + 0x39f8], eax
cmp eax, 0xffffffff
jne 0x418235
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
cmp eax, 2
je 0x41824a
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x6c]
inc edi
cmp edi, 3
jl 0x4181f0
mov eax, dword [esi + 0x39f8]
cmp eax, 0xffffffff
jne 0x418254
mov edi, 0xce5
jmp 0x419336
mov edi, 1
jmp 0x419336
lea edi, [esi + 0x3a04]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esi + 0x3a00], eax
test eax, eax
jne 0x418284
cmp dword [edi], eax
jne 0x418284
push dword [esi + 0x39f8]
lea edi, [eax + 2]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x419336
mov edi, dword [ebp + 0xc]
test edi, edi
jle 0x41829c
push 0
push 0
push edi
push dword [esi + 0x39f8]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esi + 0x3a00]
mov ecx, dword [sym.imp.USER32.dll_SendMessageW]
sub eax, edi
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
mov dword [esp + 0x58], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x5c], edi
cmp eax, 0x7a120
jle 0x4182e5
mov eax, dword [esi + 0x3a18]
push 0x5a9f58
push 0
push 0x801d
push dword [eax]
call ecx
mov eax, dword [esi + 0x3a18]
push 5
push dword [eax]
call edi
push 0
lea edi, [esi + 0x3a08]
push edi
push 4
lea eax, [esp + 0xac]
push eax
push dword [esi + 0x39f8]
mov eax, dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [esp + 0x34], eax
call eax
mov ecx, dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x54], ecx
test eax, eax
je 0x419140
movsd xmm0, qword [0x5ea660]
mov eax, dword [esp + 0x5c]
movsd qword [esp + 0x78], xmm0
mov dword [esp + 0x70], eax
mov eax, dword [edi]
test eax, eax
je 0x4192ff
cmp eax, 4
jne 0x4192f8
add dword [esp + 0x14], eax
mov eax, dword [esi + 0x3a14]
mov dword [esp + 0x30], 0
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
cmp dword [esp + 0xa0], 0
jle 0x4183ff
nop dword [eax]
push 0
push edi
push 0x4d0
lea eax, [esp + 0xec4]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x41915e
cmp dword [edi], 0x4d0
jne 0x419154
mov ecx, dword [esi + 0x3a14]
add dword [esp + 0x14], 0x4d0
mov ecx, dword [ecx + 0x38]
call fcn.00532910
lea eax, [esp + 0xeb8]
push eax
mov eax, dword [esi + 0x3a14]
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx + 8]
call fcn.00536e70
mov eax, dword [esi + 0x3a14]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x24]
mov al, byte [eax + 0x4c78]
mov byte [ecx + 0x108], al
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0xa0]
jl 0x418370
mov eax, dword [esi + 0x3a14]
push 0
push edi
push 4
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 8]
movups xmm0, xmmword [eax + 0x110]
mov eax, dword [esp + 0x48]
movaps xmmword [esp + 0x8c], xmm0
movups xmmword [eax + 0x28], xmm0
lea eax, [esp + 0xb0]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x4192e7
cmp dword [edi], 4
jne 0x4192e0
mov eax, dword [esi + 0x3a14]
add dword [esp + 0x14], 4
mov dword [esp + 0x30], 0
mov ecx, dword [eax + 0x34]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
cmp dword [esp + 0xa4], 0
jle 0x4185da
push 0
push edi
push 0x300
lea eax, [esp + 0x37c]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x41917c
cmp dword [edi], 0x300
jne 0x419172
mov ecx, dword [esi + 0x3a14]
add dword [esp + 0x14], 0x300
mov ecx, dword [ecx + 0x34]
call fcn.004f88a0
mov eax, dword [esi + 0x3a14]
mov ecx, 0xa2
lea esi, [esp + 0x3c0]
mov eax, dword [eax + 0x34]
mov edx, dword [eax + 8]
movzx eax, word [esp + 0x370]
mov word [edx + 8], ax
lea edi, [edx + 0x58]
movzx eax, word [esp + 0x372]
mov word [edx + 0xa], ax
movsd xmm0, qword [esp + 0x378]
movsd qword [edx + 0x10], xmm0
movsd xmm0, qword [esp + 0x380]
movsd qword [edx + 0x18], xmm0
movsd xmm0, qword [esp + 0x388]
movsd qword [edx + 0x20], xmm0
movzx eax, word [esp + 0x390]
mov word [edx + 0x28], ax
movsd xmm0, qword [esp + 0x398]
movsd qword [edx + 0x30], xmm0
movsd xmm0, qword [esp + 0x3a0]
movsd qword [edx + 0x38], xmm0
movzx eax, word [esp + 0x3a8]
mov word [edx + 0x40], ax
movsd xmm0, qword [esp + 0x3b0]
movsd qword [edx + 0x48], xmm0
movzx eax, word [esp + 0x3b8]
mov word [edx + 0x50], ax
mov eax, dword [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
movsd xmm0, qword [esp + 0x648]
inc eax
mov esi, dword [esp + 0x60]
movsd qword [edx + 0x2e0], xmm0
movsd xmm0, qword [esp + 0x650]
movsd qword [edx + 0x2e8], xmm0
movsd xmm0, qword [esp + 0x658]
lea edi, [esi + 0x3a08]
movsd qword [edx + 0x2f0], xmm0
movsd xmm0, qword [esp + 0x660]
movsd qword [edx + 0x2f8], xmm0
movsd xmm0, qword [esp + 0x668]
movsd qword [edx + 0x300], xmm0
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0xa4]
jl 0x418474
push 0
push edi
push 4
lea eax, [esp + 0xa4]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x4192cf
cmp dword [edi], 4
jne 0x4192c8
mov eax, dword [esi + 0x3a14]
mov edx, 4
add dword [esp + 0x14], 4
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
xor ecx, ecx
mov eax, dword [esp + 0x98]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00560858
add esp, 4
mov dword [esp + 0x30], eax
cmp dword [esp + 0x98], 0
mov dword [esp + 0x34], 0
jle 0x418a62
push 0
push edi
push 0x2a8
lea eax, [esp + 0xd4]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x41919a
cmp dword [edi], 0x2a8
jne 0x419190
add dword [esp + 0x14], 0x2a8
cmp word [esp + 0x270], 0
jne 0x4186c9
lea eax, [esp + 0x128]
push eax
lea eax, [esp + 0x274]
push 0x20
push eax
call fcn.00565fee
mov ax, word [esp + 0x244]
add esp, 0xc
mov word [esp + 0x2b2], ax
mov al, byte [esp + 0x268]
mov byte [esp + 0x2b0], al
cmp dword [esp + 0xc8], 0x1e8480
jge 0x4186fb
cmp word [esp + 0x128], 0x40
mov eax, 0x40
mov byte [esp + 0x2b7], 0
je 0x4186f3
mov eax, 0x2a
mov word [esp + 0x2b4], ax
mov edx, 3
push ecx
lea ecx, [edx + 3]
call fcn.00410cf0
add esp, 4
test al, al
je 0x41871a
mov byte [esp + 0x2b6], 1
jmp 0x418724
mov word [esp + 0x2b6], 0
mov eax, dword [esi + 0x3a14]
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [eax + 0x30]
call fcn.00540c30
mov ecx, eax
test ecx, ecx
jne 0x418a45
movsd xmm0, qword [esp + 0x240]
sub esp, 0x2c
mov eax, dword [esi + 0x3a14]
movsd qword [esp + 0x24], xmm0
movups xmm0, xmmword [esp + 0x284]
movups xmmword [esp + 0x14], xmm0
movups xmm0, xmmword [esp + 0x274]
movups xmmword [esp + 4], xmm0
movss xmm0, dword [eax + 0x3a0]
movss dword [esp], xmm0
push dword [esp + 0x2dd]
push dword [esp + 0x2e7]
push dword [esp + 0x2ea]
push dword [esp + 0x2ec]
push dword [eax + 0x37c]
push dword [esp + 0x2f0]
push dword [esp + 0x2af]
push dword [esp + 0x2b2]
push dword [esp + 0x2b5]
push dword [esp + 0x2b8]
push ecx
push dword [esp + 0x94]
lea ecx, [esp + 0x2cc]
push dword [esp + 0x30e]
push dword [esp + 0x28a]
push ecx
lea ecx, [esp + 0x252]
push ecx
lea ecx, [esp + 0x216]
push ecx
push dword [esp + 0x218]
lea ecx, [esp + 0x1dc]
push dword [esp + 0x2ac]
push ecx
lea ecx, [esp + 0x188]
push ecx
push dword [esp + 0xb8]
mov ecx, dword [eax + 0x30]
call fcn.00540930
mov eax, dword [esi + 0x3a14]
mov eax, dword [eax + 0x30]
mov esi, dword [eax + 8]
lea eax, [esp + 0xcc]
push eax
push 0x20
mov dword [esp + 0x34], esi
lea eax, [esi + 8]
push eax
call fcn.00565fee
add esp, 0xc
lea eax, [esp + 0x168]
push eax
lea eax, [esi + 0xa4]
push 0x20
push eax
call fcn.00565fee
add esp, 0xc
lea eax, [esp + 0x1aa]
push eax
lea eax, [esi + 0xf0]
push 0x20
push eax
call fcn.00565fee
add esp, 0xc
lea eax, [esp + 0x1ea]
push eax
lea eax, [esi + 0x130]
push 0x20
push eax
call fcn.00565fee
add esp, 0xc
lea eax, [esp + 0x270]
push eax
lea eax, [esi + 0x170]
push 0x20
push eax
call fcn.00565fee
mov edx, esi
mov ecx, 0x17
lea esi, [esp + 0x118]
lea edi, [edx + 0x48]
rep movsd dword es:[edi], dword [esi]
movsd xmm0, qword [esp + 0x24c]
add esp, 4
movsd qword [edx + 0xe8], xmm0
movzx eax, word [esp + 0x234]
mov word [edx + 0xa50], ax
mov al, byte [esp + 0x236]
mov byte [edx + 0xa7c], al
movzx eax, word [esp + 0x238]
mov word [edx + 0xa7e], ax
mov eax, dword [esp + 0x23c]
mov dword [edx + 0xa80], eax
movzx eax, word [esp + 0x240]
mov word [edx + 0xa84], ax
movzx eax, word [esp + 0x1b0]
mov word [edx + 0xa86], ax
movzx eax, word [esp + 0x232]
mov word [edx + 0xa88], ax
movzx eax, word [esp + 0x2ba]
mov word [edx + 0xa8a], ax
movsd xmm0, qword [esp + 0x250]
movsd qword [edx + 0xab8], xmm0
movsd xmm0, qword [esp + 0x258]
movsd qword [edx + 0xac0], xmm0
movsd xmm0, qword [esp + 0x260]
movsd qword [edx + 0xac8], xmm0
movsd xmm0, qword [esp + 0x268]
movsd qword [edx + 0xad0], xmm0
mov al, byte [esp + 0x270]
mov byte [edx + 0xad8], al
mov al, byte [esp + 0x271]
mov esi, dword [esp + 0x68]
mov byte [edx + 0xad9], al
mov al, byte [esp + 0x272]
mov byte [edx + 0xada], al
mov al, byte [esp + 0x273]
mov byte [edx + 0xadb], al
mov al, byte [esp + 0x2b8]
mov byte [edx + 0xadc], al
movzx eax, word [esp + 0x2bc]
mov word [edx + 0xa48], ax
mov al, byte [esp + 0x2be]
mov byte [edx + 0x3d4], al
mov al, byte [esp + 0x2bf]
mov byte [edx + 0x3d5], al
mov al, byte [esp + 0x2b9]
mov byte [edx + 0x3d6], al
mov ecx, dword [esi + 0x3a14]
movss xmm0, dword [ecx + 0x3a0]
mov ecx, dword [ecx + 0x30]
movss dword [esp + 4], xmm0
push dword [esp + 0x44]
push dword [esp + 0x44]
mov ecx, dword [ecx + 8]
call fcn.00545650
mov eax, dword [esi + 0x3a14]
lea edi, [esi + 0x3a08]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov dword [edx + eax*4], ecx
inc eax
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x98]
jl 0x418650
push 0
push edi
push 0x848
lea eax, [esp + 0x67c]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x4192b7
cmp dword [edi], 0x848
jne 0x4192b0
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0x965]
mov byte [ecx + 0x4f1d], al
mov al, byte [esp + 0x966]
mov byte [ecx + 0x4f1e], al
mov al, byte [esp + 0xd68]
mov byte [ecx + 0x5320], al
mov al, byte [esp + 0xd69]
mov byte [ecx + 0x5321], al
mov al, byte [esp + 0xdfc]
mov byte [ecx + 0x540c], al
lea eax, [esp + 0x968]
push eax
lea eax, [ecx + 0x4f20]
push 0x80
push eax
call fcn.00565fee
add esp, 0xc
lea eax, [esp + 0xa68]
push eax
mov eax, dword [esp + 0x28]
add eax, 0x5020
push 0x80
push eax
call fcn.00565fee
add esp, 0xc
lea eax, [esp + 0xb68]
push eax
mov eax, dword [esp + 0x28]
add eax, 0x5120
push 0x80
push eax
call fcn.00565fee
add esp, 0xc
lea eax, [esp + 0xc68]
push eax
mov eax, dword [esp + 0x28]
add eax, 0x5220
push 0x80
push eax
call fcn.00565fee
mov ecx, dword [esp + 0x30]
add esp, 0xc
cmp dword [esp + 0x670], 0xfb7d5
mov byte [ecx + 0x5488], 0
mov word [ecx + 0x548a], 0
jge 0x418b7d
mov byte [ecx + 0x5495], 0
mov eax, 2
jmp 0x418b92
mov al, byte [esp + 0xe85]
mov byte [ecx + 0x5495], al
mov ax, word [esp + 0xe86]
mov edx, 3
mov word [ecx + 0x5496], ax
push ecx
lea ecx, [edx + 3]
call fcn.00410cf0
add esp, 4
test al, al
mov eax, dword [esp + 0x24]
je 0x418bda
xor edx, edx
mov byte [eax + 0x549a], 1
push ecx
lea ecx, [edx + 0xa]
call fcn.00410cf0
add esp, 4
test al, al
mov eax, dword [esp + 0x24]
je 0x418be3
cmp byte [eax + 0x549b], 0
jne 0x418bea
jmp 0x418be3
mov word [eax + 0x549a], 0
mov byte [eax + 0x53c5], 0
push 0
push edi
push 4
lea eax, [esp + 0xa8]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x41929f
cmp dword [edi], 4
jne 0x419298
add dword [esp + 0x14], 0x84c
mov eax, dword [esp + 0x9c]
cmp eax, 0xffffffff
je 0x418c5a
push 0
push edi
push 4
lea eax, [esp + 0xb4]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x4191b8
cmp dword [edi], 4
jne 0x4191ae
add dword [esp + 0x14], 4
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xb0], 0x7fff
mov dword [esp + 0xac], 0xffff8000
cmp eax, 0xffffffff
je 0x4190f7
mov byte [esp + 0x2b], 1
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x40]
mov ecx, 1
add edx, eax
mov eax, dword [esi + 0x3a14]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
test eax, eax
je 0x418ce4
cmp ecx, edx
je 0x418cdd
mov eax, dword [eax]
inc ecx
test eax, eax
jne 0x418cd0
jmp 0x418ce4
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x3a14]
mov ecx, 1
mov edx, dword [esp + 0xa8]
add edx, dword [esp + 0x44]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 8]
movups xmm0, xmmword [eax + 0x110]
mov eax, dword [esp + 0x3c]
movups xmmword [eax + 0x28], xmm0
mov eax, dword [esi + 0x3a14]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
test eax, eax
je 0x418d36
cmp ecx, edx
je 0x418d2f
mov eax, dword [eax]
inc ecx
test eax, eax
jne 0x418d22
jmp 0x418d36
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 8], eax
push 0
push edi
push 4
lea eax, [esp + 0xa0]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x419287
cmp dword [edi], 4
jne 0x419280
add dword [esp + 0x14], 4
cmp byte [esp + 0x2b], 0
je 0x418dc0
cmp byte [esi + 0x3a1d], 0
mov ecx, dword [esi + 0x3a14]
jne 0x418db3
call fcn.00517ed0
mov eax, dword [esi + 0x3a14]
push 0
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 8]
mov eax, dword [ecx + 8]
mov dword [edx + 0x28], eax
mov ecx, dword [esi + 0x3a14]
mov eax, dword [ecx + 0x38]
mov eax, dword [eax + 8]
cmp word [eax + 0x5a], 1
jne 0x418dac
call fcn.00518a70
jmp 0x418dba
call fcn.005186f0
jmp 0x418dba
push 0
call fcn.0051d3e0
xor cl, cl
mov byte [esp + 0x2b], cl
mov edx, dword [esp + 0x94]
cmp edx, 0xfffffffe
je 0x418fb9
mov byte [esp + 0x2a], 1
cmp edx, dword [esp + 0x34]
je 0x418e4d
mov eax, dword [esi + 0x3a14]
mov ecx, dword [eax + 0x30]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + edx*4 - 4]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x3a14]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 8]
push dword [eax + 0x1b0]
push dword [esp + 0x3c]
call dword [esp + 0x5c]
mov edi, dword [esi + 0x3a14]
mov edx, 0x1000
mov dword [esp + 0x50], eax
lea ecx, [edi + 0x3bc]
nop dword [eax]
mov eax, dword [edi + 0x30]
lea ecx, [ecx + 0x20]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1b0]
mov dword [ecx - 0x20], eax
sub edx, 1
jne 0x418e30
lea edi, [esi + 0x3a08]
push 0
push edi
push 4
lea eax, [esp + 0xcc]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x419230
cmp dword [edi], 4
jne 0x419226
mov ecx, dword [esp + 0xc0]
mov eax, ecx
add dword [esp + 0x14], 4
cdq
and edx, 0x7ff
add eax, edx
sar eax, 0xb
mov dword [esp + 0x48], eax
and ecx, 0x800007ff
jns 0x418ea3
dec ecx
or ecx, 0xfffff800
inc ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x64], 0
test eax, eax
jle 0x418f14
lea eax, [esi + 0x9a1e]
nop dword [eax]
push 0
push edi
push 0x1000
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x4191d6
cmp dword [edi], 0x1000
jne 0x4191cc
add dword [esp + 0x14], 0x1000
mov ecx, esi
push 0x800
call fcn.004145d0
mov eax, dword [esp + 0x64]
inc eax
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x64], eax
lea eax, [esi + 0x9a1e]
jl 0x418ec0
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x418f57
push 0
lea eax, [ecx + ecx]
push edi
push eax
mov dword [esp + 0x54], eax
lea eax, [esi + 0x9a1e]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x4191f4
mov eax, dword [edi]
cmp eax, dword [esp + 0x48]
jne 0x4191ea
push dword [esp + 0x2c]
add dword [esp + 0x18], eax
mov ecx, esi
call fcn.004145d0
cmp byte [esp + 0x2a], 0
je 0x418f7c
mov eax, dword [esi + 0x3a10]
mov byte [esp + 0x2a], 0
mov eax, dword [eax + 8]
mov dword [esp + 0x4c], eax
mov ax, word [eax]
dec ax
movzx eax, ax
mov dword [esp + 0x70], eax
push 0
push edi
push 4
lea eax, [esp + 0xa0]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x419212
cmp dword [edi], 4
jne 0x419208
add dword [esp + 0x14], 4
mov edx, dword [esp + 0x94]
cmp edx, 0xfffffffe
jne 0x418dd5
push 0
push edi
push 4
lea eax, [esp + 0xa8]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x41926c
cmp dword [edi], 4
jne 0x419262
mov eax, dword [esp + 0x14]
add eax, 4
cmp dword [esp + 0x9c], 0xffffffff
mov dword [esp + 0x14], eax
je 0x419029
push 0
push edi
push 4
lea eax, [esp + 0xb4]
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
je 0x41924e
cmp dword [edi], 4
jne 0x419244
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x58]
cmp ecx, 0x7a120
jle 0x419084
movd xmm1, eax
movd xmm0, ecx
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
mulsd xmm1, qword [esp + 0x78]
cvttsd2si eax, xmm1
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x68]
je 0x419084
call fcn.0040f410
push dword [esp + 0x2c]
mov eax, dword [esi + 0x3a18]
push 0
push 0x801c
push dword [eax]
call dword [esp + 0x84]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x68], eax
lea eax, [esp + 0xac]
mov ecx, dword [esi + 0x3a14]
push eax
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x74]
lea eax, [esp + 0xd0]
push 0
push 0
push eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0xdc]
push eax
mov eax, dword [esp + 0x48]
push 1
add eax, 0x4c28
push eax
push 0
push dword [esp + 0xa0]
push dword [esp + 0x80]
push dword [esp + 0x70]
call fcn.0051c760
mov eax, dword [esp + 0x9c]
cmp eax, 0xffffffff
jne 0x418cb2
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0xa0]
push dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0xa8]
mov dword [esp + 0x48], eax
call fcn.00560853
add esp, 4
lea eax, [esp + 0xa0]
push 0
push edi
push 4
push eax
push dword [esi + 0x39f8]
call dword [esp + 0x34]
test eax, eax
jne 0x418331
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xce6
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xce9
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xce8
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xced
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcec
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xcf1
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcf0
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xcf7
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcf6
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xcfd
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcfc
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xcff
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcfe
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xd01
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xd00
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xcfb
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcfa
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xd05
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xd04
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xd03
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xd02
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xcf9
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcf8
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xcf5
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcf4
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xcf3
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcf2
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xcef
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcee
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xceb
jmp 0x419301
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edi, 0xcea
mov dword [ecx], eax
jmp 0x419301
mov edi, 0xce7
jmp 0x419301
xor edi, edi
mov eax, dword [esp + 0x50]
test eax, eax
je 0x419312
push eax
push dword [esp + 0x3c]
call dword [esp + 0x5c]
push dword [esi + 0x39f8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x58], 0x7a120
jle 0x419336
mov eax, dword [esi + 0x3a18]
push 0
push dword [eax]
call dword [esp + 0x64]
cmp byte [ebp + 0x18], 0
je 0x419344
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [esp + 0x138c]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.0056060a
mov esp, ebp
pop ebp
ret 0x18