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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x59aa3f
mov eax, dword fs:[0]
push eax
sub esp, 0x158
mov eax, dword [0x618190]
xor eax, esp
mov dword [esp + 0x150], eax
push ebx
push esi
push edi
mov eax, dword [0x618190]
xor eax, esp
push eax
lea eax, [esp + 0x168]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0xf8], 0xf
mov dword [esp + 0x14], ebx
mov dword [esp + 0xf4], ebx
mov byte [esp + 0xe4], bl
mov dword [esp + 0x170], ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
test ebx, ebx
jne 0x408763
lea eax, [esp + 0x3c]
mov dword [esp + 0x50], 7
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], ax
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], eax
mov byte [esp + 0x54], al
mov dword [esp + 0x80], 7
mov dword [esp + 0x7c], eax
mov word [esp + 0x6c], ax
mov dword [esp + 0x98], 0xf
mov dword [esp + 0x94], eax
mov byte [esp + 0x84], al
mov byte [esp + 0x170], 4
mov edx, 0x627d88
cmp dword [0x627d9c], 8
cmovae edx, dword [0x627d88]
cmp word [edx], ax
jne 0x408700
xor ecx, ecx
jmp 0x408714
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408705
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x44]
call fcn.0041f200
cmp dword [esp + 0x50], 8
lea eax, [esp + 0x3c]
cmovae eax, dword [esp + 0x3c]
push eax
push 0xa
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
mov ebx, eax
mov dword [esp + 0x14], ebx
test ebx, ebx
je 0x40875a
call edi
cmp eax, 0xb7
jne 0x40875a
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x3c]
call fcn.00402150
xor eax, eax
mov dword [esp + 0x110], 7
mov dword [esp + 0x10c], 0
mov word [esp + 0xfc], ax
mov dword [esp + 0x128], 0xf
mov dword [esp + 0x124], eax
mov byte [esp + 0x114], al
mov dword [esp + 0x140], 7
mov dword [esp + 0x13c], eax
mov word [esp + 0x12c], ax
mov dword [esp + 0x158], 0xf
mov dword [esp + 0x154], eax
mov byte [esp + 0x144], al
push eax
push 0x5ed1d8
lea ecx, [esp + 0x104]
mov byte [esp + 0x178], 8
call fcn.0041f200
mov byte [esp + 0x170], 9
test ebx, ebx
jne 0x408851
cmp dword [0x627d9c], 8
mov esi, 0x627d88
cmovae esi, dword [0x627d88]
call edi
push eax
push esi
push str._tname_s_err_lu.
lea eax, [esp + 0x48]
push eax
push 0x6279dc
call fcn.004134e0
add esp, 0x14
mov edx, eax
mov byte [esp + 0x170], 0xa
cmp dword [edx + 0x14], 8
jb 0x408835
mov edx, dword [edx]
cmp word [edx], 0
jne 0x40883f
xor ecx, ecx
jmp 0x4088af
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408844
jmp 0x4088ab
cmp dword [0x627d9c], 8
mov eax, 0x627d88
cmovae eax, dword [0x627d88]
push eax
push str._tname_s.
lea eax, [esp + 0x44]
push eax
push 0x6279dc
call fcn.004134e0
add esp, 0x10
mov edx, eax
mov byte [esp + 0x170], 0xb
cmp dword [edx + 0x14], 8
jb 0x40888e
mov edx, dword [edx]
cmp word [edx], 0
jne 0x408898
xor ecx, ecx
jmp 0x4088af
mov ecx, edx
lea esi, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4088a0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x104]
call fcn.0041f200
lea ecx, [esp + 0x3c]
call fcn.00402150
mov dword [esp + 0xe0], 0xf
mov dword [esp + 0xdc], 0
mov byte [esp + 0xcc], 0
mov byte [esp + 0x170], 0xc
lea ecx, [esp + 0xfc]
cmp dword [esp + 0x110], 8
cmovae ecx, dword [esp + 0xfc]
mov esi, ecx
mov dword [esp + 0x18], ecx
lea edx, [esi + 2]
lea esp, [esp]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x408910
sub esi, edx
sar esi, 1
je 0x4089a5
push 0
push 0
push 0
push 0
push esi
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
jle 0x408968
lea ecx, [ebx + 1]
push ecx
call fcn.0043b82a
add esp, 4
mov edi, eax
push 0
push 0
push ebx
push edi
push esi
push dword [esp + 0x2c]
mov byte [ebx + edi], 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x408977
push 1
call fcn.0043b82a
mov edi, eax
add esp, 4
mov byte [edi], 0
cmp byte [edi], 0
jne 0x408980
xor ecx, ecx
jmp 0x40898e
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408985
sub ecx, edx
push ecx
push edi
lea ecx, [esp + 0xd4]
call fcn.0041fab0
push edi
call fcn.0043b833
add esp, 4
push 0xffffffffffffffff
push 0
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0x120]
call fcn.004200a0
cmp dword [esp + 0x128], 0x10
lea esi, [esp + 0x114]
cmovae esi, dword [esp + 0x114]
mov byte [esp + 0x170], 9
cmp dword [esp + 0xe0], 0x10
jb 0x4089f5
push dword [esp + 0xcc]
call fcn.0043b833
add esp, 4
mov dword [esp + 0xe0], 0xf
mov dword [esp + 0xdc], 0
mov byte [esp + 0xcc], 0
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], 0
mov byte [esp + 0xb4], 0
cmp byte [esi], 0
jne 0x408a3a
xor ecx, ecx
jmp 0x408a49
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408a40
sub ecx, edx
push ecx
push esi
lea ecx, [esp + 0xbc]
call fcn.0041fab0
mov byte [esp + 0x170], 0xd
lea ecx, [esp + 0xb4]
cmp dword [esp + 0xc8], 0x10
lea edx, [esp + 0xe4]
mov edi, dword [esp + 0xc4]
mov esi, edi
cmovae ecx, dword [esp + 0xb4]
cmp dword [esp + 0xf8], 0x10
mov ebx, dword [esp + 0xf4]
cmovae edx, dword [esp + 0xe4]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
je 0x408b00
sub esi, 4
jb 0x408ac1
jmp 0x408ab0
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x408ac6
add edx, 4
add ecx, 4
sub esi, 4
jae 0x408ab0
cmp esi, 0xfffffffc
je 0x408afa
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x408af3
cmp esi, 0xfffffffd
je 0x408afa
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x408af3
cmp esi, 0xfffffffe
je 0x408afa
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x408af3
cmp esi, 0xffffffff
je 0x408afa
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x408afa
sbb eax, eax
or eax, 1
jmp 0x408afc
xor eax, eax
test eax, eax
jne 0x408b12
cmp ebx, edi
jae 0x408b09
or eax, 0xffffffff
jmp 0x408b10
xor eax, eax
cmp ebx, edi
setne al
test eax, eax
sete al
test al, al
sete al
test al, al
je 0x408b81
push 0xffffffffffffffff
push 0
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0xf0]
call fcn.004200a0
cmp dword [esp + 0xc8], 0x10
lea eax, [esp + 0xb4]
mov dword [esp + 0x2c], 0x5e9a48
cmovae eax, dword [esp + 0xb4]
push eax
push 0x5e9a40
sub esp, 0xc
mov dword [esp + 0x44], 0
movq xmm0, qword [esp + 0x40]
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 1
call fcn.00404820
add esp, 0x14
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x408df1
xorps xmm0, xmm0
mov dword [esp + 0xa4], 0
movq qword [esp + 0x9c], xmm0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
sub esp, 0x60
xor eax, eax
mov edx, esp
mov dword [esp + 0x78], edx
mov dword [edx + 0x14], 7
mov dword [edx + 0x10], 0
mov word [edx], ax
mov dword [edx + 0x2c], 0xf
mov dword [edx + 0x28], eax
mov byte [edx + 0x18], al
mov dword [edx + 0x44], 7
mov dword [edx + 0x40], eax
mov word [edx + 0x30], ax
mov dword [edx + 0x5c], 0xf
mov dword [edx + 0x58], eax
mov byte [edx + 0x48], al
mov byte [esp + 0x1d0], 0x12
mov esi, 0x627a88
cmp dword [0x627a9c], 8
cmovae esi, dword [0x627a88]
cmp word [esi], ax
jne 0x408c2d
xor ecx, ecx
jmp 0x408c41
mov ecx, esi
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408c32
sub ecx, edi
sar ecx, 1
push ecx
push esi
mov ecx, edx
call fcn.0041f200
lea eax, [esp + 0xfc]
mov byte [esp + 0x1d0], 0xe
push eax
mov ecx, 0x627a60
call fcn.00409270
mov edi, dword [esp + 0xa0]
mov eax, 0x2aaaaaab
mov esi, dword [esp + 0x9c]
mov ecx, edi
sub ecx, esi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x408daa
xorps xmm0, xmm0
mov dword [esp + 0xb0], 0
movq qword [esp + 0xa8], xmm0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
lea eax, [esp + 0xa8]
mov byte [esp + 0x170], 0x13
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.00408e50
mov ecx, dword [esp + 0xac]
mov eax, 0x2aaaaaab
sub ecx, dword [esp + 0xa8]
imul ecx
mov dword [esp + 0x1c], 0x5e9ab0
sar edx, 4
mov eax, edx
mov dword [esp + 0x20], 0
movq xmm0, qword [esp + 0x1c]
shr eax, 0x1f
add eax, edx
push eax
push str._tvFiles_d_begin_zip.
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 1
call fcn.00404820
add esp, 0x14
lea eax, [esp + 0xa8]
push eax
call fcn.00409850
mov ebx, dword [esp + 0xa8]
test ebx, ebx
je 0x408d98
mov edi, dword [esp + 0xac]
mov esi, ebx
cmp ebx, edi
je 0x408d6e
lea ebx, [ebx]
mov ecx, esi
call fcn.00402150
add esi, 0x60
cmp esi, edi
jne 0x408d60
push ebx
call fcn.0043b833
add esp, 4
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
test esi, esi
je 0x408df1
cmp esi, edi
je 0x408dc7
mov ecx, esi
call fcn.00402150
add esi, 0x60
cmp esi, edi
jne 0x408db2
mov esi, dword [esp + 0x9c]
push esi
call fcn.0043b833
add esp, 4
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esp + 0xc8], 0x10
jb 0x408e15
push dword [esp + 0xb4]
call fcn.0043b833
add esp, 4
lea ecx, [esp + 0xfc]
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], 0
mov byte [esp + 0xb4], 0
call fcn.00402150
jmp 0x408676