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

Disassembly:
sub esp, 0x5a4
push ebx
push ebp
mov ebx, ecx
push esi
cmp dword [ebx + 0x14], 0
push edi
je 0x10066134
mov eax, 0x40000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret 0x10
cmp byte [ebx + 0x2c], 0
je 0x1006614c
mov eax, 0x50000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret 0x10
mov ecx, dword [esp + 0x5b8]
xor esi, esi
cmp dword [ebx], esi
mov eax, 0xc
cmovne esi, eax
lea edx, [esp + 0x3a8]
mov dword [esp + 0x28], esi
sub edx, ecx
lea esp, [esp]
movzx eax, word [ecx]
mov word [edx + ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x10066170
cmp word [esp + 0x3a8], ax
jne 0x1006619b
mov eax, 0x10000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret 0x10
lea eax, [esp + 0x3a8]
mov ecx, 0x2f
cmp word [eax], 0x5c
jne 0x100661b0
mov word [eax], cx
add eax, 2
cmp word [eax], 0
jne 0x100661a7
lea ecx, [esp + 0x3a8]
mov ebp, 8
call fcn.10067110
push dword [esp + 0x5bc]
xor ecx, ecx
test al, al
cmovne ebp, ecx
mov ecx, ebx
call fcn.10066b70
test eax, eax
jne 0x10066689
push eax
push eax
push 0x104
mov dword [esp + 0x3b0], eax
mov byte [esp + 0x8c], al
lea eax, [esp + 0x19c]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x3bc]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea ecx, [esp + 0x190]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10066225
mov byte [esp + 0x294], al
xor eax, eax
mov word [esp + 0x72], ax
mov eax, dword [ebx + 0x68]
sub ecx, edx
cmp dword [ebx], 0
mov dword [esp + 0x50], eax
mov eax, 8
mov dword [esp + 0x60], ecx
mov dword [esp + 0x18c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x398], 1
mov dword [esp + 0x3a0], 0
mov dword [esp + 0x48], 0x140b17
mov dword [esp + 0x54], 0
mov word [esp + 0x4c], ax
je 0x10066299
mov eax, 9
mov word [esp + 0x4c], ax
mov word [esp + 0x74], ax
mov word [esp + 0x4e], bp
test ebp, ebp
jne 0x100662b6
mov eax, dword [ebx + 0x70]
test eax, eax
js 0x100662b6
add eax, esi
mov dword [esp + 0x58], eax
jmp 0x100662be
mov dword [esp + 0x58], 0
mov eax, dword [ebx + 0x70]
mov dword [esp + 0x5c], eax
xor eax, eax
mov word [esp + 0x70], ax
mov eax, dword [ebx + 0x4c]
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x10]
add eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x5c]
mov dword [esp + 0x7c], eax
mov ecx, dword [ebx + 0x58]
lea eax, [esp + 0x14]
mov dword [esp + 0x184], eax
lea eax, [esp + 0x30]
mov dword [esp + 0x188], eax
mov al, byte [ebx + 0x58]
mov byte [esp + 0x19], al
mov eax, edx
shrd ecx, eax, 8
sar eax, 8
mov byte [esp + 0x1a], cl
mov ecx, dword [ebx + 0x58]
mov eax, edx
shrd ecx, eax, 0x10
sar eax, 0x10
mov eax, dword [ebx + 0x58]
shrd eax, edx, 0x18
mov dword [esp + 0x2c], eax
mov byte [esp + 0x1c], al
mov al, byte [ebx + 0x50]
mov byte [esp + 0x1d], al
mov byte [esp + 0x1b], cl
mov ecx, dword [ebx + 0x50]
sar edx, 0x18
mov edx, dword [ebx + 0x54]
mov eax, edx
shrd ecx, eax, 8
sar eax, 8
mov byte [esp + 0x1e], cl
mov ecx, dword [ebx + 0x50]
mov eax, edx
shrd ecx, eax, 0x10
sar eax, 0x10
mov eax, dword [ebx + 0x50]
shrd eax, edx, 0x18
mov byte [esp + 0x20], al
mov al, byte [ebx + 0x60]
mov byte [esp + 0x21], al
mov byte [esp + 0x1f], cl
mov ecx, dword [ebx + 0x60]
sar edx, 0x18
mov edx, dword [ebx + 0x64]
mov eax, edx
shrd ecx, eax, 8
sar eax, 8
mov byte [esp + 0x22], cl
mov ecx, dword [ebx + 0x60]
mov eax, edx
shrd ecx, eax, 0x10
sar eax, 0x10
mov eax, dword [ebx + 0x60]
shrd eax, edx, 0x18
mov dword [esp + 0x14], 0xd5455
mov byte [esp + 0x18], 7
movq xmm0, qword [esp + 0x14]
mov byte [esp + 0x24], al
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x23], cl
movq qword [esp + 0x30], xmm0
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x68], 0x11
mov dword [esp + 0x6c], 9
sar edx, 0x18
mov byte [esp + 0x3c], al
mov byte [esp + 0x36], 5
call fcn.10067af0
add esp, 4
test eax, eax
je 0x100663ff
mov ecx, ebx
call fcn.100667e0
mov eax, 0x400
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret 0x10
mov eax, dword [esp + 0x64]
add eax, 0x1e
add eax, dword [esp + 0x60]
add dword [ebx + 0x18], eax
cmp dword [ebx + 0x14], 0
je 0x1006642a
mov ecx, ebx
call fcn.100667e0
mov eax, dword [ebx + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret 0x10
mov dword [ebx + 0x30], 0x12345678
mov dword [ebx + 0x34], 0x23456789
mov dword [ebx + 0x38], 0x34567890
mov esi, dword [ebx]
test esi, esi
je 0x10066456
mov dl, byte [esi]
test dl, dl
je 0x10066456
lea ecx, [ebx + 0x30]
call fcn.10067230
inc esi
jne 0x10066445
cmp byte [0x1010cdcc], 0
jne 0x10066478
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
call dword [0x1010ceb4]
xor esi, eax
push esi
call fcn.10036076
add esp, 4
xor esi, esi
lea ebx, [ebx]
call fcn.10036053
sar eax, 7
mov byte [esp + esi + 0x3c], al
inc esi
cmp esi, 0xc
jl 0x10066480
mov eax, dword [esp + 0x50]
shr eax, 8
mov byte [esp + 0x47], al
xor esi, esi
nop
mov dl, byte [esp + esi + 0x3c]
lea ecx, [ebx + 0x30]
call fcn.100671f0
mov byte [esp + esi + 0x3c], al
inc esi
cmp esi, 0xc
jl 0x100664a0
cmp dword [ebx], 0
je 0x100664cf
push 0xc
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.10066de0
add esp, 0xc
add dword [ebx + 0x18], 0xc
xor eax, eax
xor esi, esi
cmp dword [ebx], eax
setne al
mov byte [ebx + 0x2d], al
cmp ebp, 8
jne 0x100664ee
lea eax, [esp + 0x48]
push eax
mov ecx, ebx
call fcn.10066700
jmp 0x100664f9
test ebp, ebp
jne 0x100664fb
mov ecx, ebx
call fcn.100666a0
mov esi, eax
mov ecx, ebx
mov byte [ebx + 0x2d], 0
call fcn.100667e0
mov ecx, dword [ebx + 0x90]
mov eax, dword [ebx + 0x14]
add dword [ebx + 0x18], ecx
test eax, eax
jne 0x10066689
test esi, esi
jne 0x100663ed
add ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0x78]
cmp dword [esp + 0x58], ecx
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x70]
sete dl
cmp byte [ebx + 0x1c], 0
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
je 0x100665b1
cmp dword [ebx], esi
jne 0x100665b1
mov ax, word [esp + 0x4c]
mov word [esp + 0x4e], bp
test al, 1
jne 0x10066564
mov ecx, 0xfff7
and ax, cx
mov word [esp + 0x4c], ax
mov word [esp + 0x74], ax
mov eax, dword [esp + 0x7c]
sub eax, dword [ebx + 0x10]
mov ecx, ebx
push eax
call fcn.10066c90
test al, al
je 0x1006659f
push ebx
lea ecx, [esp + 0x4c]
call fcn.10067af0
add esp, 4
test eax, eax
jne 0x100663ed
push dword [ebx + 0x18]
mov ecx, ebx
call fcn.10066c90
test al, al
jne 0x100665f5
mov eax, 0x2000000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret 0x10
cmp word [esp + 0x4e], bp
je 0x100665ca
mov eax, 0x4000000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret 0x10
test ebp, ebp
jne 0x100665d2
test dl, dl
je 0x100665b8
push ebx
lea ecx, [esp + 0x4c]
call fcn.10067990
add esp, 4
test eax, eax
jne 0x100663ed
mov ax, word [esp + 0x74]
add dword [ebx + 0x18], 0x10
mov word [esp + 0x4c], ax
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x10066689
push dword [esp + 0x68]
call fcn.1001a154
add esp, 4
mov esi, eax
push dword [esp + 0x68]
push dword [esp + 0x18c]
push esi
call fcn.10037e80
add esp, 0xc
mov dword [esp + 0x188], esi
push 0x360
call fcn.10035e2f
mov edx, eax
mov ecx, 0xd8
lea esi, [esp + 0x4c]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x44]
add esp, 4
test ecx, ecx
jne 0x1006665e
mov dword [ebx + 0x44], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret 0x10
cmp dword [ecx + 0x35c], 0
lea eax, [ecx + 0x35c]
je 0x10066681
lea ecx, [ecx]
mov ecx, dword [eax]
cmp dword [ecx + 0x35c], 0
lea eax, [ecx + 0x35c]
jne 0x10066670
mov dword [ecx + 0x35c], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5a4
ret 0x10