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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
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 0x101520ab
cmp eax, 0x1a
je 0x10152089
cmp eax, 0x19
je 0x10152089
cmp eax, 0x1c
je 0x10152089
cmp eax, 0x1e
je 0x10152089
cmp eax, 0x14
je 0x10152071
cmp eax, 0x15
je 0x10152071
cmp eax, 0x16
je 0x10152071
cmp eax, 0x17
je 0x10152071
cmp eax, 0x18
jne 0x101520ab
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x101520ab
cmp dword [eax + 0x10], edx
jne 0x101520ab
push 0x1002fcb0
push 0x7ea
jmp 0x10152093
push 0x1002fc08
push 0x7e9
lea eax, [ebx + 0x10]
push eax
push dword [esi]
call fcn.1012c47b
add esp, 0x10
mov eax, 0x80004005
jmp 0x101527be
push edi
mov edi, dword [ebx + 0x3c]
mov dword [ebp - 4], ecx
test edi, edi
je 0x10152164
cmp dword [edi + 4], 0x13
mov dword [ebp - 4], ecx
jne 0x10152164
lea eax, [ecx + 1]
mov dword [ebp - 4], eax
lea ecx, [ebx + 0x10]
xor eax, eax
cmp dword [edi + 0x10], 0xffffffff
sete al
mov dword [ebp - 8], eax
cmp dword [edi + 0x14], edx
je 0x10152100
push 0x1002fc70
push 0x7de
push ecx
push dword [esi]
call fcn.1012c47b
add esp, 0x10
mov dword [esi + 0x4c], 1
lea ecx, [ebx + 0x10]
mov edx, dword [edi + 0x28]
test edx, edx
je 0x10152164
mov eax, dword [esi + 0x38]
xor edi, edi
sub eax, 4
inc edi
cmp eax, edi
ja 0x10152146
cmp dword [edx + 0x10], 0xffffffff
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
jne 0x10152123
mov dword [ebp - 8], edi
cmp dword [edx + 0x28], 0
je 0x10152141
push 0x1002fcf8
push 0x7d9
push ecx
push dword [esi]
call fcn.1012c47b
add esp, 0x10
mov dword [esi + 0x4c], edi
inc dword [ebp - 4]
jmp 0x10152164
push 0x1002fd48
push 0x7d8
push ecx
push dword [esi]
call fcn.1012c47b
mov edx, dword [ebp - 8]
add esp, 0x10
mov dword [esi + 0x4c], edi
mov dword [ebp - 8], edx
mov edi, dword [ebx + 0x40]
test edi, edi
je 0x10152214
cmp dword [edi + 4], 0x13
jne 0x10152214
mov eax, dword [esi + 0x38]
test eax, eax
js 0x10152185
cmp eax, 1
jle 0x1015218f
cmp eax, 6
jl 0x101521b1
cmp eax, 0xa
jg 0x101521b1
push 0x1002fdd0
lea eax, [ebx + 0x10]
push 0x7e5
push eax
push dword [esi]
call fcn.1012c47b
mov dword [esi + 0x4c], 1
add esp, 0x10
mov edi, dword [ebx + 0x40]
inc dword [ebp - 4]
cmp dword [edi + 0x10], 0xffffffff
jne 0x101521c1
mov dword [ebp - 8], 1
cmp dword [edi + 0x14], 0
je 0x101521ef
cmp dword [edi + 0x14], 0xd000000
je 0x101521ef
push 0x1002fda0
lea eax, [ebx + 0x10]
push 0x7e3
push eax
push dword [esi]
call fcn.1012c47b
add esp, 0x10
mov dword [esi + 0x4c], 1
cmp dword [edi + 0x28], 0
je 0x10152214
push 0x1002fe38
lea eax, [ebx + 0x10]
push 0x7e4
push eax
push dword [esi]
call fcn.1012c47b
add esp, 0x10
mov dword [esi + 0x4c], 1
mov edi, dword [ebp - 4]
lea eax, [ebx + 0x44]
xor edx, edx
mov dword [ebp - 0xc], eax
mov ecx, eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], ecx
mov eax, dword [ecx]
test eax, eax
je 0x101522a2
inc edi
cmp dword [ebx + 0x30], 0x51
je 0x10152293
cmp dword [ebx + 0x30], 0x30
je 0x10152293
cmp dword [ebx + 0x30], 0x2f
je 0x10152293
cmp dword [eax + 0x10], 0xffffffff
jne 0x1015224d
mov dword [ebp - 8], 1
mov eax, dword [eax + 0x28]
test eax, eax
je 0x10152293
cmp dword [eax + 0x10], 0xffffffff
jne 0x10152261
mov dword [ebp - 8], 1
cmp dword [eax + 0x28], 0
je 0x1015228c
push 0x1002fcf8
lea eax, [ebx + 0x10]
push 0x7d9
push eax
push dword [esi]
call fcn.1012c47b
mov ecx, dword [ebp - 0x14]
add esp, 0x10
mov edx, dword [ebp - 0x10]
mov dword [esi + 0x4c], 1
cmp dword [esi + 0x38], 0
je 0x10152293
inc edi
inc edx
add ecx, 4
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], ecx
cmp edx, 4
jb 0x10152227
push edi
mov ecx, esi
mov dword [ebp - 4], edi
call fcn.10151f78
test eax, eax
js 0x101527bd
mov eax, dword [esi + 0x5c]
add eax, edi
mov edi, dword [ebx + 0x30]
mov dword [ebp - 0x18], eax
cmp edi, 3
jne 0x101523be
mov eax, dword [esi + 0x38]
test eax, eax
js 0x101522d5
cmp eax, 5
jle 0x101522e1
add eax, 0xfffffff6
cmp eax, 4
ja 0x101523be
mov ecx, dword [ebx + 0x48]
mov edx, 0x7000000
push 2
pop edi
mov eax, dword [ecx + 0x14]
cmp eax, edx
ja 0x10152386
je 0x1015237d
test eax, eax
je 0x10152374
cmp eax, 0x1000000
je 0x1015236e
mov edx, 0x2000000
cmp eax, edx
je 0x10152365
cmp eax, 0x3000000
je 0x101523bb
mov edx, 0x4000000
cmp eax, edx
je 0x1015235c
cmp eax, 0x5000000
je 0x101523bb
cmp eax, 0x6000000
jne 0x101523be
push 0x1002fe04
lea eax, [ebx + 0x10]
push 0x7dd
push eax
push dword [esi]
call fcn.1012c47b
add esp, 0x10
mov dword [esi + 0x4c], 1
jmp 0x101523be
mov dword [ecx + 0x14], 0x5000000
jmp 0x101523be
mov dword [ecx + 0x14], 0x3000000
jmp 0x101523be
and dword [ecx + 0x14], 0
jmp 0x101523be
mov dword [ecx + 0x14], 0x1000000
jmp 0x101523be
mov dword [ecx + 0x14], 0x8000000
jmp 0x101523be
cmp eax, 0x8000000
je 0x101523bb
cmp eax, 0x9000000
je 0x1015233b
cmp eax, 0xa000000
je 0x1015233b
mov edx, 0xb000000
cmp eax, edx
je 0x101523b2
cmp eax, 0xc000000
je 0x101523bb
cmp eax, 0xd000000
jmp 0x10152335
mov dword [ecx + 0x14], 0xc000000
jmp 0x101523be
mov dword [ecx + 0x14], edx
cmp dword [ebx + 0x54], 0
je 0x101523ca
or edi, 0x40000000
cmp dword [ebx + 0x40], 0
je 0x101523d6
or edi, 0x10000000
mov eax, dword [esi + 0x38]
cmp eax, 1
jl 0x101523e3
cmp eax, 5
jle 0x101523eb
add eax, 0xfffffff6
cmp eax, 4
ja 0x101523f4
mov eax, dword [ebp - 4]
dec eax
shl eax, 0x18
or edi, eax
cmp dword [ebx + 0x30], 0x29
je 0x10152406
cmp dword [ebx + 0x30], 0x2d
je 0x10152406
cmp dword [ebx + 0x30], 0x5e
jne 0x10152411
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 0x1015244b
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 - 0x14], ecx
test ecx, ecx
je 0x10152532
cmp dword [ecx + 4], 0x13
mov dword [ebp - 4], edi
jne 0x10152532
cmp dword [esi + 0x38], 0
mov edi, 0xf0000
jne 0x10152495
cmp dword [ecx + 0x20], edi
jne 0x10152495
cmp eax, 0x15
je 0x1015248e
cmp eax, 0x17
je 0x1015248e
cmp eax, 0x18
jne 0x10152495
mov dword [ecx + 0x20], 0x30000
jmp 0x10152495
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 0x101524cf
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 - 0x14]
inc eax
mov dword [esi + 0x5c], eax
mov edx, eax
mov dword [ebp - 4], eax
mov edi, dword [ecx + 0x28]
test edi, edi
je 0x10152535
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 0x10152535
mov eax, dword [ebp - 4]
mov ecx, dword [ebx + 0x40]
mov edi, eax
test ecx, ecx
je 0x10152589
cmp dword [ecx + 4], 0x13
jne 0x10152589
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 0x101525d9
and dword [ebp - 0x14], 0
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebx]
test eax, eax
je 0x10152621
cmp dword [eax + 0x10], 5
mov ecx, edi
jl 0x101525c0
cmp dword [eax + 0x10], 8
jg 0x101525c0
fld qword [eax + 0x18]
mov ecx, dword [esi + 0x58]
fstp dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov dword [ecx + edi*4], eax
mov ecx, dword [esi + 0x5c]
lea edi, [ecx + 1]
add ebx, 4
mov ecx, dword [ebp - 0x14]
mov edx, edi
inc ecx
mov dword [esi + 0x5c], edi
mov dword [ebp - 0x14], ecx
cmp ecx, 4
jb 0x10152596
jmp 0x10152621
cmp dword [ebx + 0x30], 0x30
jne 0x10152629
mov ebx, dword [ebp - 0xc]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [ebx]
test eax, eax
je 0x10152621
mov eax, dword [eax + 0x10]
dec eax
sub eax, 1
je 0x101525fc
dec eax
sub eax, 1
jne 0x1015260d
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 - 0x14]
inc ecx
lea edx, [edi + 1]
add ebx, 4
mov dword [esi + 0x5c], edx
mov dword [ebp - 0x14], ecx
mov edi, edx
cmp ecx, 4
jb 0x101525e7
mov ebx, dword [ebp + 8]
jmp 0x10152779
cmp dword [ebx + 0x30], 0x2f
jne 0x1015264b
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 0x10152779
and dword [ebp - 0x14], 0
lea ecx, [ebx + 0x44]
mov edi, dword [ecx]
test edi, edi
je 0x10152779
cmp dword [esi + 0x38], 0
jne 0x10152693
cmp dword [edi + 0x24], 0xe40000
jne 0x10152693
mov eax, dword [ebx + 0x30]
cmp eax, 6
je 0x1015268c
cmp eax, 7
je 0x1015268c
cmp eax, 0xe
je 0x1015268c
cmp eax, 0x4e
je 0x1015268c
cmp eax, 0xf
je 0x1015268c
cmp eax, 0x4f
jne 0x10152693
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 0x101526d0
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 0x10152760
mov eax, dword [edi + 0x10]
xor ecx, ecx
cmp dword [esi + 0x38], ecx
jne 0x10152726
cmp eax, 3
jne 0x10152705
cmp dword [edi + 0x14], ecx
jne 0x10152705
cmp dword [edi + 0x18], ecx
jne 0x10152705
cmp dword [edi + 0x24], ecx
je 0x10152760
push 0x1002feb0
lea eax, [ebx + 0x10]
push 0x7d7
push eax
push dword [esi]
call fcn.1012c47b
add esp, 0x10
mov dword [esi + 0x4c], 1
jmp 0x1015275d
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 - 0x14]
mov ecx, dword [ebp - 0xc]
inc eax
add ecx, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], ecx
cmp eax, 4
jb 0x10152652
add ebx, 0x10
cmp edx, dword [ebp - 0x18]
je 0x1015279a
push 0x1002fe84
push 0
push ebx
push dword [esi]
call fcn.1012c47b
add esp, 0x10
mov dword [esi + 0x4c], 1
cmp dword [ebp - 8], 0
je 0x101527a8
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x64], eax
jmp 0x101527bb
push ebx
mov ecx, esi
call fcn.10151f1a
test eax, eax
jns 0x101527bb
mov dword [esi + 0x50], 1
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4