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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
xor esi, esi
push edi
push dword [ebp + 0xc]
mov ebx, ecx
push dword [ebp + 8]
mov dword [ebx + 0x9c], esi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], esi
call fcn.0106fd3a
mov edi, eax
cmp edi, esi
jl 0x10873db
xor edi, edi
cmp dword [ebx + 8], esi
jbe 0x1086be8
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 4]
test al, 8
je 0x1086bcb
test ah, 1
je 0x1086bcf
test al, 0x10
je 0x1086be2
mov eax, dword [ebx]
push esi
push ecx
mov ecx, ebx
call dword [eax + 8]
test eax, eax
jl 0x10872ac
xor esi, esi
inc edi
cmp edi, dword [ebx + 8]
jb 0x1086bb1
mov eax, dword [ebx + 0x108]
cmp eax, esi
mov dword [ebx + 0xa0], esi
mov dword [ebx + 0xa4], esi
mov dword [ebx + 0xa8], esi
mov dword [ebx + 0xb0], esi
mov dword [ebx + 0xb4], esi
je 0x1086c1c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebx + 0x108], esi
test byte [ebx + 0x34], 4
jne 0x1086c71
mov edi, 0x100e154
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp eax, esi
jne 0x1086c3d
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, esi
je 0x1086c71
push 0x100e134
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, esi
je 0x1086c71
call eax
cmp eax, esi
mov dword [ebx + 0x108], eax
je 0x1086c71
mov ecx, dword [eax]
push 1
push ebx
push 0x10838bc
push eax
call dword [ecx + 0xc]
mov edi, eax
cmp edi, esi
jl 0x10873db
test byte [ebx + 0x34], 1
je 0x1086ca6
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
push eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
mov dword [ebx + 0xb8], eax
je 0x10870f9
mov eax, dword [ebx + 0xc]
shl eax, 1
mov dword [ebx + 0xbc], esi
mov dword [ebx + 0xc0], eax
or dword [ebx + 0xcc], 0xffffffff
xor eax, eax
cmp dword [ebx + 8], esi
mov dword [ebx + 0xe0], esi
jbe 0x1086cd2
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + eax*4]
mov dword [ecx + 0x1c], esi
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + eax*4]
inc eax
mov dword [ecx + 0x20], esi
cmp eax, dword [ebx + 8]
jb 0x1086cba
cmp dword [ebx + 8], esi
mov dword [ebp - 0x28], esi
mov dword [ebp + 0xc], esi
jbe 0x1086d1d
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov edx, dword [ebx + 0x10]
mov edi, dword [edx + ecx*4]
mov ecx, dword [edi + 4]
test cl, 8
je 0x1086cfb
test ch, 1
je 0x1086d00
test cl, 0x10
je 0x1086d09
mov edx, dword [ebx]
push esi
push eax
mov ecx, ebx
call dword [edx + 8]
test byte [edi + 4], 0x40
je 0x1086d12
inc dword [ebp - 0x28]
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebx + 8]
jb 0x1086cdd
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebx + 0x88]
jbe 0x1086d82
lea eax, [ebp - 0x3c]
push eax
push esi
push dword [ebx + 0x30]
call fcn.0104493e
test eax, eax
jl 0x10872ac
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x1086d65
push eax
push dword [ebp - 0x3c]
push 0x1010ff0
push 0x119e
push 0
push ebx
call fcn.010690dd
add esp, 0x18
jmp 0x10872ac
push dword [ebp - 0x3c]
push 0x1010fc4
push 0x11c1
push 0
push ebx
call fcn.010690dd
add esp, 0x14
jmp 0x10872ac
mov ecx, dword [ebx + 0x30]
mov eax, 0xffff0000
and ecx, eax
cmp ecx, 0xfffe0000
jne 0x1086db9
push 0x76
push 0x100
push 8
push dword [ebx + 0x6c]
mov ecx, ebx
push dword [ebx + 0x58]
call fcn.01080f8d
mov edi, eax
cmp edi, esi
jl 0x10873db
mov eax, 0xffff0000
mov ecx, dword [ebx + 0x30]
and ecx, eax
cmp ecx, eax
jne 0x1086de0
push 0x73
push esi
push 0x40
push dword [ebx + 0x88]
mov ecx, ebx
push 0xffffffffffffffff
call fcn.01080f8d
mov edi, eax
cmp edi, esi
jl 0x10873db
cmp dword [ebx + 8], esi
jbe 0x1086e4b
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0x14]
mov dword [ebp + 0xc], eax
mov eax, dword [edi]
mov ecx, dword [eax]
cmp dword [ebx + 0x60], ecx
jne 0x1086e05
mov edx, dword [eax + 8]
inc edx
cmp edx, dword [ebp - 0x2c]
jbe 0x1086e05
mov dword [ebp - 0x2c], edx
jmp 0x1086e43
cmp dword [ebx + 0x58], ecx
jne 0x1086e18
mov edx, dword [eax + 8]
inc edx
cmp edx, dword [ebp - 4]
jbe 0x1086e18
mov dword [ebp - 4], edx
jmp 0x1086e43
cmp dword [ebx + 0x5c], ecx
jne 0x1086e2b
mov edx, dword [eax + 8]
inc edx
cmp edx, dword [ebp - 8]
jbe 0x1086e2b
mov dword [ebp - 8], edx
jmp 0x1086e43
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + ecx*4]
test byte [ecx + 4], 0x40
je 0x1086e43
mov eax, dword [eax + 8]
inc eax
cmp eax, dword [ebp - 0x18]
jbe 0x1086e43
mov dword [ebp - 0x18], eax
add edi, 4
dec dword [ebp + 0xc]
jne 0x1086dee
mov eax, dword [ebp - 4]
shl eax, 2
push eax
mov dword [ebp - 0x28], eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
mov dword [ebp - 0xc], eax
je 0x10870f9
mov edi, dword [ebp - 8]
shl edi, 2
push edi
mov dword [ebp + 0xc], edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
mov dword [ebp - 0x10], eax
je 0x10870f9
mov eax, dword [ebp - 0x18]
shl eax, 2
push eax
mov dword [ebp - 0x2c], eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
mov dword [ebp - 0x20], eax
je 0x10870f9
push dword [ebp - 0x28]
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
mov dword [ebp - 0x30], eax
je 0x10870f9
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
mov dword [ebp - 0x14], eax
je 0x10870f9
mov ecx, dword [ebp - 0x28]
mov edi, dword [ebp - 0xc]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x10]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x20]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor edx, edx
cmp dword [ebx + 8], esi
jbe 0x1086f56
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax]
cmp dword [ebx + 0x5c], ecx
jne 0x1086f27
cmp dword [eax + 0x50], 0xffffffff
je 0x1087082
mov edi, dword [ebp - 0x10]
jmp 0x1086f4a
cmp dword [ebx + 0x58], ecx
jne 0x1086f3b
cmp dword [eax + 0x50], 0xffffffff
je 0x1087089
mov edi, dword [ebp - 0xc]
jmp 0x1086f4a
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + ecx*4]
test byte [ecx + 4], 0x40
je 0x1086f50
mov edi, dword [ebp - 0x20]
mov ecx, dword [eax + 8]
mov dword [edi + ecx*4], eax
inc edx
cmp edx, dword [ebx + 8]
jb 0x1086f0b
cmp dword [ebx + 8], esi
mov dword [ebp + 0xc], esi
jbe 0x1086f9b
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x58]
cmp eax, dword [edx]
jne 0x1086f90
xor eax, eax
cmp dword [ebp - 4], esi
jbe 0x1086f90
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + eax*4]
cmp ecx, esi
je 0x1086f8a
mov edi, dword [edx + 0x50]
cmp edi, dword [ecx + 0x50]
jne 0x1086f8a
mov dword [edx + 8], eax
inc eax
cmp eax, dword [ebp - 4]
jb 0x1086f75
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebx + 8]
jb 0x1086f5e
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
mov esi, ecx
shr ecx, 2
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
xor esi, esi
rep stosb byte es:[edi], al
cmp dword [ebx + 8], esi
jbe 0x1086fe1
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax]
mov edi, dword [ebx + 0x10]
mov edi, dword [edi + ecx*4]
mov ecx, dword [edi + 4]
test cl, 8
je 0x1086fdb
test ch, 1
jne 0x1086fdb
mov ecx, dword [eax + 8]
mov dword [edx + ecx*4], eax
inc esi
cmp esi, dword [ebx + 8]
jb 0x1086fba
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 4], ecx
mov dword [ebp - 0x2c], ecx
jbe 0x1086ffb
cmp dword [edx + eax*4], ecx
je 0x1086ff5
inc dword [ebp - 0x2c]
inc eax
cmp eax, dword [ebp - 4]
jb 0x1086fed
mov ecx, ebx
call fcn.01083997
mov edi, eax
xor esi, esi
cmp edi, esi
jl 0x10873db
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x30]
mov edi, eax
cmp edi, esi
jl 0x10873db
test byte [ebx + 0x34], 8
je 0x108702e
test byte [ebx + 0x92], 0x10
je 0x1087050
mov ecx, ebx
call fcn.01083959
mov edi, eax
cmp edi, esi
jl 0x10873db
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x2c]
mov edi, eax
cmp edi, esi
jl 0x10873db
push 0x63
push 0x40
push 0x100
push dword [ebx + 0x78]
mov ecx, ebx
push dword [ebx + 0x54]
call fcn.01080f8d
mov edi, eax
cmp edi, esi
jl 0x10873db
cmp dword [ebx + 0xc], esi
mov dword [ebx + 0x9c], esi
jbe 0x1087095
mov eax, dword [ebx + 0x18]
mov eax, dword [eax]
jmp 0x1087097
push 0x1010f90
jmp 0x108708e
push 0x1010f60
push esi
push esi
jmp 0x108746e
xor eax, eax
mov dword [ebx + 0x98], eax
mov eax, dword [ebx]
mov ecx, ebx
mov dword [ebx + 0x94], esi
call dword [eax + 0x38]
mov edi, eax
cmp edi, esi
jl 0x10873db
and dword [ebp + 0xc], 0
cmp dword [ebx + 8], 0
jbe 0x10870e6
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx]
mov edi, dword [eax]
mov edi, dword [edx + edi*4]
test byte [edi + 4], 0x80
je 0x10870de
cmp dword [eax + 4], 0xffffffff
jne 0x10870de
inc esi
add ecx, 4
dec dword [ebp - 0x28]
jne 0x10870ca
mov edi, esi
shl edi, 4
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
test eax, eax
pop ecx
mov dword [ebp - 0x1c], eax
jne 0x1087103
mov edi, 0x8007000e
jmp 0x10873db
shl esi, 2
push esi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
test eax, eax
pop ecx
mov dword [ebp - 0x24], eax
je 0x10872ac
mov ecx, edi
mov edi, dword [ebp - 0x1c]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, esi
mov esi, dword [ebp - 0x24]
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor edi, edi
cmp dword [ebx + 8], edi
jbe 0x10871a7
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax]
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + ecx*4]
test byte [ecx + 4], 0x80
je 0x10871a1
cmp dword [eax + 4], 0xffffffff
jne 0x10871a1
cmp dword [eax + 0x24], 0xffffffff
jne 0x10871a1
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
jbe 0x1087180
mov edx, dword [eax + 8]
cmp dword [esi + ecx*4], edx
je 0x1087180
inc ecx
cmp ecx, dword [ebp + 0xc]
jb 0x1087175
cmp ecx, dword [ebp + 0xc]
jne 0x108718e
mov edx, dword [eax + 8]
inc dword [ebp + 0xc]
mov dword [esi + ecx*4], edx
fld qword [eax + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + ecx*4]
fld st(0)
mov ecx, dword [ebp - 0x1c]
fstp dword [ecx + eax*4]
fstp st(0)
inc edi
cmp edi, dword [ebx + 8]
jb 0x108714b
xor esi, esi
cmp dword [ebp + 0xc], esi
jbe 0x10871d8
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push dword [ecx + esi*4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x3c]
mov edi, eax
test edi, edi
jl 0x10873db
add dword [ebp - 0x28], 0x10
inc esi
cmp esi, dword [ebp + 0xc]
jb 0x10871b4
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebx + 0x80]
jbe 0x10871f4
push 0x1010f3c
push 0x119a
push 0
jmp 0x108746e
mov eax, dword [ebp - 4]
and dword [ebp + 0xc], 0
test eax, eax
jbe 0x108722f
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 0x30]
sub esi, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [edi]
test eax, eax
je 0x1087227
mov edx, dword [ebx]
lea ecx, [esi + edi]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x40]
test eax, eax
jge 0x1087227
mov dword [ebp + 0xc], 1
add edi, 4
dec dword [ebp - 0x2c]
jne 0x108720a
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x48]
mov edi, eax
xor esi, esi
cmp edi, esi
jl 0x10873db
cmp dword [ebp - 0x18], esi
jbe 0x108726a
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x1087264
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x44]
test eax, eax
jge 0x1087264
mov dword [ebp + 0xc], 1
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x1087247
cmp dword [ebp - 8], 0
jbe 0x10872a5
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
sub esi, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [edi]
test eax, eax
je 0x108729d
mov edx, dword [ebx]
push 0
lea ecx, [esi + edi]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x5c]
test eax, eax
jge 0x108729d
mov dword [ebp + 0xc], 1
add edi, 4
dec dword [ebp - 0x2c]
jne 0x108727e
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
je 0x10872b6
mov edi, 0x80004005
jmp 0x10873db
xor esi, esi
cmp dword [ebp - 8], ecx
jbe 0x10872fb
mov edx, dword [ebp - 0x10]
cmp dword [ecx + edx], 0
je 0x10872f2
and dword [ebp + 0xc], 0
test ecx, ecx
jbe 0x10872f2
mov eax, dword [ebp - 0x14]
sub edx, eax
cmp dword [edx + eax], 0
je 0x10872e7
mov edi, dword [ebp - 0x14]
mov edi, dword [ecx + edi]
cmp edi, dword [eax]
je 0x108745b
inc dword [ebp + 0xc]
add eax, 4
cmp dword [ebp + 0xc], esi
jb 0x10872d3
inc esi
add ecx, 4
cmp esi, dword [ebp - 8]
jb 0x10872bd
mov ecx, ebx
call fcn.01083959
mov edi, eax
test edi, edi
jl 0x10873db
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov edi, eax
test edi, edi
jl 0x10873db
mov ecx, ebx
call fcn.01085e71
mov edi, eax
test edi, edi
jl 0x10873db
test byte [ebx + 0x34], 1
je 0x1087345
mov ecx, ebx
call fcn.01086516
mov edi, eax
test edi, edi
jl 0x10873db
push 0xffff
mov ecx, ebx
call fcn.01085e46
mov edi, eax
test edi, edi
jl 0x10873db
mov ecx, ebx
call fcn.0108384c
mov edi, eax
test edi, edi
jl 0x10873db
mov eax, dword [ebx + 0x108]
test eax, eax
je 0x1087384
cmp dword [ebx + 0x38], 0
jne 0x1087384
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
jl 0x10873db
cmp dword [ebp + 8], 0
je 0x10873d9
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebx + 0xa4]
shl eax, 2
push eax
call fcn.01043619
mov edi, eax
test edi, edi
jl 0x10873db
mov eax, dword [ebx + 0xa4]
mov esi, dword [ebx + 0xa0]
shl eax, 2
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov edi, eax
mov eax, dword [ebp - 0x2c]
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 [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
xor edi, edi
push dword [ebp - 0xc]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x10]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x30]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x14]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x1c]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x24]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x20]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
lea esi, [ebx + 0xa0]
push dword [esi]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
and dword [esi], 0
lea esi, [ebx + 0xb8]
push dword [esi]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
and dword [esi], 0
add ebx, 0x108
mov eax, dword [ebx]
add esp, 0x28
test eax, eax
je 0x1087452
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebx], 0
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + esi*4]
push 0x1010f1c
push 0x1198
push dword [eax + 0x4c]
push ebx
call fcn.010690dd
add esp, 0x10
jmp 0x10872ac