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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 8]
xor edx, edx
push esi
mov esi, ecx
mov dword [ebp - 8], edx
xor ecx, ecx
mov eax, dword [esi + 0x5c]
shl eax, 2
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x30]
cmp eax, 0x1f
sete cl
inc ecx
cmp dword [esi + 0x78], edx
je 0x1015c707
cmp eax, 0x1a
je 0x1015c6e5
cmp eax, 0x19
je 0x1015c6e5
cmp eax, 0x1c
je 0x1015c6e5
cmp eax, 0x1e
je 0x1015c6e5
cmp eax, 0x14
je 0x1015c6cd
cmp eax, 0x15
je 0x1015c6cd
cmp eax, 0x16
je 0x1015c6cd
cmp eax, 0x17
je 0x1015c6cd
cmp eax, 0x18
jne 0x1015c707
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x1015c707
cmp dword [eax + 0x10], edx
jne 0x1015c707
push 0x10033b70
push 0x7ea
jmp 0x1015c6ef
push 0x10033b20
push 0x7e9
lea eax, [ebx + 0x10]
push eax
push dword [esi]
call fcn.10135ee7
add esp, 0x10
mov eax, 0x80004005
jmp 0x1015ce35
push edi
mov edi, dword [ebx + 0x3c]
mov dword [ebp - 4], ecx
test edi, edi
je 0x1015c7d3
cmp dword [edi + 4], 0x13
mov dword [ebp - 4], ecx
jne 0x1015c7d3
xor eax, eax
lea edx, [ecx + 1]
cmp dword [edi + 0x10], 0xffffffff
lea ecx, [ebx + 0x10]
mov dword [ebp - 4], edx
sete al
cmp dword [edi + 0x14], 0
mov dword [ebp - 8], eax
je 0x1015c760
push 0x10033bb8
push 0x7de
push ecx
push dword [esi]
call fcn.10135ee7
mov edx, dword [ebp - 4]
lea ecx, [ebx + 0x10]
add esp, 0x10
mov dword [esi + 0x4c], 1
mov eax, dword [edi + 0x28]
test eax, eax
je 0x1015c7d3
cmp dword [esi + 0x38], 4
jl 0x1015c7b1
cmp dword [esi + 0x38], 5
jg 0x1015c7b1
cmp dword [eax + 0x10], 0xffffffff
mov edi, dword [ebp - 8]
mov dword [ebp - 8], edi
jne 0x1015c786
mov dword [ebp - 8], 1
cmp dword [eax + 0x28], 0
je 0x1015c7ab
push 0x10033c50
push 0x7d9
push ecx
push dword [esi]
call fcn.10135ee7
mov edx, dword [ebp - 4]
add esp, 0x10
mov dword [esi + 0x4c], 1
inc edx
mov dword [ebp - 4], edx
jmp 0x1015c7d3
push 0x10033bf8
push 0x7d8
push ecx
push dword [esi]
call fcn.10135ee7
mov edx, dword [ebp - 8]
add esp, 0x10
mov dword [esi + 0x4c], 1
mov dword [ebp - 8], edx
mov edi, dword [ebx + 0x40]
test edi, edi
je 0x1015c883
cmp dword [edi + 4], 0x13
jne 0x1015c883
mov eax, dword [esi + 0x38]
test eax, eax
js 0x1015c7f4
cmp eax, 1
jle 0x1015c7fe
cmp eax, 6
jl 0x1015c820
cmp eax, 0xa
jg 0x1015c820
push 0x10033ca0
lea eax, [ebx + 0x10]
push 0x7e5
push eax
push dword [esi]
call fcn.10135ee7
mov dword [esi + 0x4c], 1
add esp, 0x10
mov edi, dword [ebx + 0x40]
inc dword [ebp - 4]
cmp dword [edi + 0x10], 0xffffffff
jne 0x1015c830
mov dword [ebp - 8], 1
cmp dword [edi + 0x14], 0
je 0x1015c85e
cmp dword [edi + 0x14], 0xd000000
je 0x1015c85e
push 0x10033cd4
lea eax, [ebx + 0x10]
push 0x7e3
push eax
push dword [esi]
call fcn.10135ee7
add esp, 0x10
mov dword [esi + 0x4c], 1
cmp dword [edi + 0x28], 0
je 0x1015c883
push 0x10033d08
lea eax, [ebx + 0x10]
push 0x7e4
push eax
push dword [esi]
call fcn.10135ee7
add esp, 0x10
mov dword [esi + 0x4c], 1
lea eax, [ebx + 0x44]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov edi, eax
mov dword [ebp - 0xc], eax
mov eax, dword [edi]
test eax, eax
je 0x1015c915
mov edx, dword [ebp - 4]
inc edx
cmp dword [ebx + 0x30], 0x51
mov dword [ebp - 4], edx
je 0x1015c905
cmp dword [ebx + 0x30], 0x30
je 0x1015c905
cmp dword [ebx + 0x30], 0x2f
je 0x1015c905
cmp dword [eax + 0x10], 0xffffffff
jne 0x1015c8bc
mov dword [ebp - 8], 1
mov eax, dword [eax + 0x28]
test eax, eax
je 0x1015c905
cmp dword [eax + 0x10], 0xffffffff
jne 0x1015c8d0
mov dword [ebp - 8], 1
cmp dword [eax + 0x28], 0
je 0x1015c8fb
push 0x10033c50
lea eax, [ebx + 0x10]
push 0x7d9
push eax
push dword [esi]
call fcn.10135ee7
mov ecx, dword [ebp - 0x10]
add esp, 0x10
mov edx, dword [ebp - 4]
mov dword [esi + 0x4c], 1
cmp dword [esi + 0x38], 0
je 0x1015c905
inc edx
mov dword [ebp - 4], edx
inc ecx
add edi, 4
mov dword [ebp - 0x10], ecx
cmp ecx, 4
jb 0x1015c890
push dword [ebp - 4]
mov ecx, esi
call fcn.1015c5d4
test eax, eax
js 0x1015ce34
mov eax, dword [esi + 0x5c]
mov ecx, dword [ebp - 4]
add eax, ecx
mov edi, dword [ebx + 0x30]
mov dword [ebp - 0x14], eax
cmp edi, 3
jne 0x1015ca36
mov eax, dword [esi + 0x38]
test eax, eax
js 0x1015c94a
cmp eax, 5
jle 0x1015c956
add eax, 0xfffffff6
cmp eax, 4
ja 0x1015ca36
mov ecx, dword [ebx + 0x48]
mov edx, 0x7000000
push 2
pop edi
mov eax, dword [ecx + 0x14]
cmp eax, edx
ja 0x1015c9fb
je 0x1015c9f2
test eax, eax
je 0x1015c9e9
cmp eax, 0x1000000
je 0x1015c9e3
mov edx, 0x2000000
cmp eax, edx
je 0x1015c9da
cmp eax, 0x3000000
je 0x1015ca30
mov edx, 0x4000000
cmp eax, edx
je 0x1015c9d1
cmp eax, 0x5000000
je 0x1015ca30
cmp eax, 0x6000000
jne 0x1015ca33
push 0x10033d54
lea eax, [ebx + 0x10]
push 0x7dd
push eax
push dword [esi]
call fcn.10135ee7
add esp, 0x10
mov dword [esi + 0x4c], 1
jmp 0x1015ca33
mov dword [ecx + 0x14], 0x5000000
jmp 0x1015ca33
mov dword [ecx + 0x14], 0x3000000
jmp 0x1015ca33
and dword [ecx + 0x14], 0
jmp 0x1015ca33
mov dword [ecx + 0x14], 0x1000000
jmp 0x1015ca33
mov dword [ecx + 0x14], 0x8000000
jmp 0x1015ca33
cmp eax, 0x8000000
je 0x1015ca30
cmp eax, 0x9000000
je 0x1015c9b0
cmp eax, 0xa000000
je 0x1015c9b0
mov edx, 0xb000000
cmp eax, edx
je 0x1015ca27
cmp eax, 0xc000000
je 0x1015ca30
cmp eax, 0xd000000
jmp 0x1015c9aa
mov dword [ecx + 0x14], 0xc000000
jmp 0x1015ca33
mov dword [ecx + 0x14], edx
mov ecx, dword [ebp - 4]
cmp dword [ebx + 0x54], 0
je 0x1015ca42
or edi, 0x40000000
cmp dword [ebx + 0x40], 0
je 0x1015ca4e
or edi, 0x10000000
mov eax, dword [esi + 0x38]
cmp eax, 1
jl 0x1015ca5b
cmp eax, 5
jle 0x1015ca63
add eax, 0xfffffff6
cmp eax, 4
ja 0x1015ca6b
lea eax, [ecx - 1]
shl eax, 0x18
or edi, eax
cmp dword [ebx + 0x30], 0x29
je 0x1015ca7d
cmp dword [ebx + 0x30], 0x2d
je 0x1015ca7d
cmp dword [ebx + 0x30], 0x5e
jne 0x1015ca88
mov eax, dword [ebx + 0x38]
and eax, 7
shl eax, 0x10
or edi, eax
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], edi
mov edi, dword [esi + 0x5c]
inc edi
mov dword [esi + 0x5c], edi
mov edx, edi
mov eax, dword [ebx + 0x30]
mov dword [ebp - 4], edi
cmp eax, 0x1f
jne 0x1015cac2
mov ecx, dword [ebx + 0x38]
mov eax, dword [esi + 0x58]
or ecx, 0x80000000
mov dword [eax + edi*4], ecx
inc dword [esi + 0x5c]
mov edi, dword [esi + 0x5c]
mov edx, edi
mov eax, dword [ebx + 0x30]
mov dword [ebp - 4], edi
mov ecx, dword [ebx + 0x3c]
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x1015cba9
cmp dword [ecx + 4], 0x13
mov dword [ebp - 4], edi
jne 0x1015cba9
cmp dword [esi + 0x38], 0
mov edi, 0xf0000
jne 0x1015cb0c
cmp dword [ecx + 0x20], edi
jne 0x1015cb0c
cmp eax, 0x15
je 0x1015cb05
cmp eax, 0x17
je 0x1015cb05
cmp eax, 0x18
jne 0x1015cb0c
mov dword [ecx + 0x20], 0x30000
jmp 0x1015cb0c
mov dword [ecx + 0x20], 0x70000
mov eax, dword [ecx + 0x10]
mov edx, eax
or edx, 0xfffffff8
and eax, 0x18
shl edx, 0x14
or edx, eax
mov eax, dword [ebx + 0x34]
and eax, 0xff00000
shl edx, 8
or edx, eax
mov eax, dword [ecx + 0x18]
and eax, 0x7ff
or edx, eax
mov eax, dword [ecx + 0x20]
and eax, edi
or edx, eax
cmp dword [ecx + 0x28], 0
je 0x1015cb46
or edx, 0x2000
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], edx
mov eax, dword [esi + 0x5c]
mov ecx, dword [ebp - 0x10]
inc eax
mov dword [esi + 0x5c], eax
mov edx, eax
mov dword [ebp - 4], eax
mov edi, dword [ecx + 0x28]
test edi, edi
je 0x1015cbac
mov eax, dword [edi + 0x10]
mov ecx, eax
and eax, 0x18
or ecx, 0xfffffff8
shl ecx, 0x14
or ecx, eax
mov eax, dword [edi + 0x14]
and eax, 0xf000000
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0x18]
and eax, 0x7ff
or ecx, eax
mov eax, dword [edi + 0x24]
and eax, 0xff0000
or ecx, eax
mov eax, dword [esi + 0x58]
mov dword [eax + edx*4], ecx
inc dword [esi + 0x5c]
mov eax, dword [esi + 0x5c]
mov edx, eax
mov dword [ebp - 4], eax
jmp 0x1015cbac
mov eax, dword [ebp - 4]
mov ecx, dword [ebx + 0x40]
mov edi, eax
test ecx, ecx
je 0x1015cc00
cmp dword [ecx + 4], 0x13
jne 0x1015cc00
mov eax, dword [ecx + 0x10]
mov ecx, eax
mov edx, dword [ebx + 0x40]
or ecx, 0xfffffff8
and eax, 0x18
shl ecx, 0x14
or ecx, eax
shl ecx, 8
mov eax, dword [edx + 0x14]
and eax, 0xf000000
or ecx, eax
mov eax, dword [edx + 0x18]
and eax, 0x7ff
or ecx, eax
mov eax, dword [edx + 0x24]
mov edx, dword [ebp - 4]
and eax, 0xff0000
or ecx, eax
mov eax, dword [esi + 0x58]
mov dword [eax + edx*4], ecx
inc dword [esi + 0x5c]
mov edi, dword [esi + 0x5c]
mov edx, edi
cmp dword [ebx + 0x30], 0x51
jne 0x1015cc50
and dword [ebp - 0x10], 0
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebx]
test eax, eax
je 0x1015cc98
cmp dword [eax + 0x10], 5
mov ecx, edi
jl 0x1015cc37
cmp dword [eax + 0x10], 8
jg 0x1015cc37
fld qword [eax + 0x18]
mov ecx, dword [esi + 0x58]
fstp dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov dword [ecx + edi*4], eax
mov ecx, dword [esi + 0x5c]
lea edi, [ecx + 1]
add ebx, 4
mov ecx, dword [ebp - 0x10]
mov edx, edi
inc ecx
mov dword [esi + 0x5c], edi
mov dword [ebp - 0x10], ecx
cmp ecx, 4
jb 0x1015cc0d
jmp 0x1015cc98
cmp dword [ebx + 0x30], 0x30
jne 0x1015cca0
mov ebx, dword [ebp - 0xc]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebx]
test eax, eax
je 0x1015cc98
mov eax, dword [eax + 0x10]
dec eax
sub eax, 1
je 0x1015cc73
dec eax
sub eax, 1
jne 0x1015cc84
mov eax, dword [ebx]
mov ecx, dword [esi + 0x58]
mov eax, dword [eax + 0x18]
mov dword [ecx + edi*4], eax
mov edi, dword [esi + 0x5c]
mov ecx, dword [ebp - 0x10]
inc ecx
lea edx, [edi + 1]
add ebx, 4
mov dword [esi + 0x5c], edx
mov dword [ebp - 0x10], ecx
mov edi, edx
cmp ecx, 4
jb 0x1015cc5e
mov ebx, dword [ebp + 8]
jmp 0x1015cdf0
cmp dword [ebx + 0x30], 0x2f
jne 0x1015ccc2
mov eax, dword [ebx + 0x44]
xor ecx, ecx
cmp dword [eax + 0x18], ecx
mov eax, dword [esi + 0x58]
setne cl
mov dword [eax + edi*4], ecx
inc dword [esi + 0x5c]
mov edx, dword [esi + 0x5c]
jmp 0x1015cdf0
and dword [ebp - 0x10], 0
lea ecx, [ebx + 0x44]
mov edi, dword [ecx]
test edi, edi
je 0x1015cdf0
cmp dword [esi + 0x38], 0
jne 0x1015cd0a
cmp dword [edi + 0x24], 0xe40000
jne 0x1015cd0a
mov eax, dword [ebx + 0x30]
cmp eax, 6
je 0x1015cd03
cmp eax, 7
je 0x1015cd03
cmp eax, 0xe
je 0x1015cd03
cmp eax, 0x4e
je 0x1015cd03
cmp eax, 0xf
je 0x1015cd03
cmp eax, 0x4f
jne 0x1015cd0a
mov dword [edi + 0x24], 0xff0000
mov eax, dword [edi + 0x10]
mov edx, eax
or edx, 0xfffffff8
and eax, 0x18
shl edx, 0x14
or edx, eax
mov eax, dword [edi + 0x14]
and eax, 0xf000000
shl edx, 8
or edx, eax
mov eax, dword [edi + 0x18]
and eax, 0x7ff
or edx, eax
mov eax, dword [edi + 0x24]
and eax, 0xff0000
or edx, eax
cmp dword [edi + 0x28], 0
je 0x1015cd47
or edx, 0x2000
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], edx
mov edx, dword [esi + 0x5c]
inc edx
mov dword [esi + 0x5c], edx
mov edi, dword [edi + 0x28]
test edi, edi
je 0x1015cdd7
mov eax, dword [edi + 0x10]
xor ecx, ecx
cmp dword [esi + 0x38], ecx
jne 0x1015cd9d
cmp eax, 3
jne 0x1015cd7c
cmp dword [edi + 0x14], ecx
jne 0x1015cd7c
cmp dword [edi + 0x18], ecx
jne 0x1015cd7c
cmp dword [edi + 0x24], ecx
je 0x1015cdd7
push 0x10033d88
lea eax, [ebx + 0x10]
push 0x7d7
push eax
push dword [esi]
call fcn.10135ee7
add esp, 0x10
mov dword [esi + 0x4c], 1
jmp 0x1015cdd4
mov ecx, eax
and eax, 0x18
or ecx, 0xfffffff8
shl ecx, 0x14
or ecx, eax
mov eax, dword [edi + 0x14]
and eax, 0xf000000
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0x18]
and eax, 0x7ff
or ecx, eax
mov eax, dword [edi + 0x24]
and eax, 0xff0000
or ecx, eax
mov eax, dword [esi + 0x58]
mov dword [eax + edx*4], ecx
inc dword [esi + 0x5c]
mov edx, dword [esi + 0x5c]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
inc eax
add ecx, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
cmp eax, 4
jb 0x1015ccc9
add ebx, 0x10
cmp edx, dword [ebp - 0x14]
je 0x1015ce11
push 0x10033dc8
push 0
push ebx
push dword [esi]
call fcn.10135ee7
add esp, 0x10
mov dword [esi + 0x4c], 1
cmp dword [ebp - 8], 0
je 0x1015ce1f
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x64], eax
jmp 0x1015ce32
push ebx
mov ecx, esi
call fcn.1015c55f
test eax, eax
jns 0x1015ce32
mov dword [esi + 0x50], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4