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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005a2e4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc0
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x44], edx
xor edx, edx
mov dword [esp + 0x58], esi
push edi
cmp dword [esi + 0x10], edx
jne 0x1001cb2d
xor al, al
jmp 0x1001d387
mov dword [esp + 0x10], 0x1c76
xor ebx, ebx
mov dword [esp + 0x14], 0xfffe
inc ebx
mov dword [esp + 0x18], edx
jmp 0x1001cb56
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x54], 0x923ccde6
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x1001cb46
cmp dword [esp + 0x10], 0xbe7e5505
ja 0x1001cb72
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], edx
jmp 0x1001cbaa
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x54], edx
jne 0x1001cbb0
mov dword [esp + 0x14], edx
jmp 0x1001cba0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0x54]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x54], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jle 0x1001cb8c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jle 0x1001cb7c
push 0x620c
lea eax, [esp + 0x4c]
push eax
push edx
push 0x5298
push 0x74b3
call fcn.1001f9a9
mov dword [esp + 0x24], 0xe87df2f4
xor edi, edi
mov dword [esp + 0x28], ebx
add esp, 0x14
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], 0x39
jge 0x1001ce24
mov dword [esp + 0x84], 0xfffffff7
lea ecx, [esp + 0x60]
push 3
call fcn.10013d69
mov dword [esp + 0x1c], 0x24aa
cmp dword [esp + 0x1c], 0x10b7
jge 0x1001cda1
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x2c]
push eax
push 0x1000782c
call fcn.100405bb
mov esi, dword [esp + 0x34]
dec dword [esp + 0x68]
dec dword [esp + 0x5c]
shl esi, 2
push esi
call fcn.10041777
mov edi, eax
push esi
mov dword [esp + 0x2c], edi
call fcn.10041777
and dword [esp + 0x34], 0
add esp, 0x18
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
test ecx, ecx
jle 0x1001cca0
mov esi, edi
mov edi, dword [esp + 0x1c]
push esi
push 0x10007804
call fcn.100405bb
inc edi
add esi, 4
pop ecx
pop ecx
cmp edi, dword [esp + 0x24]
jl 0x1001cc7a
mov edi, dword [esp + 0x14]
xor ebx, ebx
mov ecx, dword [esp + 0x24]
inc ebx
mov eax, dword [esp + 0x18]
and dword [esp + 0x1c], 0
test ecx, ecx
jle 0x1001ccd1
mov edi, dword [esp + 0x1c]
mov esi, eax
push esi
push 0x10007804
call fcn.100405bb
inc edi
add esi, 4
pop ecx
pop ecx
cmp edi, dword [esp + 0x24]
jl 0x1001ccaf
mov edi, dword [esp + 0x14]
xor ebx, ebx
mov ecx, dword [esp + 0x24]
inc ebx
and dword [esp + 0x1c], 0
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], ebx
test edx, edx
jle 0x1001cd14
mov eax, dword [esp + 0x18]
mov esi, edi
sub eax, edi
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esi]
cmp eax, dword [ecx + esi]
mov ecx, dword [esp + 0x24]
jne 0x1001cd0f
mov eax, dword [esp + 0x1c]
add esi, 4
inc eax
mov dword [esp + 0x1c], eax
cmp eax, edx
jl 0x1001ccee
jmp 0x1001cd14
and dword [esp + 0x14], 0
mov edx, dword [esp + 0x4c]
inc edx
cmp edx, ecx
jge 0x1001cd48
mov eax, dword [esp + 0x18]
lea esi, [edi + edx*4]
sub eax, edi
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esi]
cmp eax, dword [esi + ecx]
mov ecx, dword [esp + 0x24]
jne 0x1001cd43
inc edx
add esi, 4
cmp edx, ecx
jl 0x1001cd2a
jmp 0x1001cd48
and dword [esp + 0x14], 0
mov esi, 0x1001ca3b
push esi
push 4
push ecx
push edi
call fcn.10041370
push esi
mov esi, dword [esp + 0x2c]
push 4
push dword [esp + 0x3c]
push esi
call fcn.10041370
xor ecx, ecx
add esp, 0x20
cmp dword [esp + 0x24], ecx
jle 0x1001cd86
sub esi, edi
mov eax, dword [edi]
cmp eax, dword [edi + esi]
jne 0x1001cdc6
inc ecx
add edi, 4
cmp ecx, dword [esp + 0x24]
jl 0x1001cd75
xor edi, edi
cmp dword [esp + 0x14], 0
mov ecx, 0x10007d90
mov eax, 0x10007d88
cmove eax, ecx
push eax
call fcn.10041046
pop ecx
mov dword [esp + 0x98], 0xc407
lea edx, [esp + 0x60]
lea ecx, [esp + 0xc0]
call fcn.1001c951
mov dword [esp + 0x14], 0xfffffff0
jmp 0x1001cded
xor edi, edi
mov dword [esp + 0x14], edi
jmp 0x1001cd88
lea eax, [esp + 0x60]
push eax
lea edx, [esp + 0x88]
lea ecx, [esp + 0x9c]
call fcn.1001c970
add esp, 4
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xc
jge 0x1001cdce
cmp dword [esp + 0x60], 0
je 0x1001ce11
push dword [esp + 0x60]
call fcn.10040fec
pop ecx
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x39
jl 0x1001cbfa
mov esi, dword [esp + 0x5c]
cmp dword [esi + 0x14], 0x10
jb 0x1001ce2e
mov ecx, dword [esi]
jmp 0x1001ce30
mov ecx, esi
cmp dword [esi + 0x14], 0x10
mov dword [esp + 0x50], ecx
jb 0x1001ce3e
mov edx, dword [esi]
jmp 0x1001ce40
mov edx, esi
mov eax, dword [esi + 0x10]
add eax, edx
cmp ecx, eax
je 0x1001d2ee
mov al, byte [ecx]
cmp al, 0x30
jl 0x1001d13d
cmp al, 0x39
jg 0x1001d13d
push 2
lea ecx, [esp + 0x90]
call fcn.10013d69
mov dword [esp + 0x10], edi
jmp 0x1001ce83
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x7c], 0xfffffffe
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x1001ce73
mov dword [esp + 0x10], edi
jmp 0x1001cea5
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x8c]
mov dword [eax + ecx*4], 0xb58e469a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001ce8f
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 4], edi
mov eax, dword [ecx + 4]
inc dword [ecx + 4]
mov dword [esp + eax*4 + 0x7c], 0xd95e17ca
cmp dword [ecx + 4], ebx
jl 0x1001ceb6
push ecx
call fcn.10040fec
pop ecx
xor ecx, ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x28], 0x1bd1
cmp dword [esp + 0x28], 0xee9
jge 0x1001d0a5
lea eax, [esp + 0x38]
push eax
push 0x10007d94
call fcn.100405bb
pop ecx
pop ecx
push dword [esp + 0x38]
lea ecx, [esp + 0xa0]
call fcn.1001fe11
and dword [esp + 0xd4], 0
xorps xmm0, xmm0
cmp dword [esp + 0x3c], 0
mov edi, dword [esp + 0x9c]
movlpd qword [esp + 0x28], xmm0
jl 0x1001cf82
jg 0x1001cf47
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1001cf86
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
lea eax, [edi + esi*8]
push eax
push 0x10007d9c
call fcn.100405bb
mov eax, dword [esp + 0x24]
add esi, ebx
pop ecx
adc eax, 0
pop ecx
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x3c]
jl 0x1001cf53
jg 0x1001cf82
mov eax, dword [esp + 0x38]
cmp esi, eax
jb 0x1001cf53
jmp 0x1001cf86
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esp + 0x70]
call fcn.1001fe11
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x6c]
mov eax, dword [edi + ecx*8 - 8]
mov dword [esi + ecx*8 - 8], eax
mov eax, dword [edi + ecx*8 - 4]
mov dword [esi + ecx*8 - 4], eax
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub edx, 2
mov ecx, eax
sbb ecx, 0
js 0x1001cfef
jg 0x1001cfc0
test edx, edx
jb 0x1001cfef
mov ebx, ecx
mov ecx, dword [edi + edx*8 + 8]
add ecx, dword [edi + edx*8]
mov eax, dword [edi + edx*8 + 0xc]
adc eax, dword [edi + edx*8 + 4]
mov dword [esi + edx*8], ecx
mov dword [esi + edx*8 + 4], eax
add edx, 0xffffffff
adc ebx, 0xffffffff
test ebx, ebx
jg 0x1001cfc2
jl 0x1001cfe8
test edx, edx
jae 0x1001cfc2
mov eax, dword [esp + 0x3c]
xor ebx, ebx
inc ebx
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
test eax, eax
jl 0x1001d04f
jg 0x1001d005
cmp dword [esp + 0x38], 0
jbe 0x1001d04f
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
push dword [edi + esi*8 + 4]
push dword [edi + esi*8]
push 0x10007da4
call fcn.10040c03
mov eax, dword [esp + 0x28]
add esp, 0xc
add esi, ebx
adc eax, 0
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x3c]
jl 0x1001d015
jg 0x1001d044
cmp esi, dword [esp + 0x38]
jb 0x1001d015
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0x6c]
push 0x1000776d
call fcn.10041046
pop ecx
test esi, esi
je 0x1001d075
push esi
call fcn.10040fec
pop ecx
xor ecx, ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
jmp 0x1001d077
xor ecx, ecx
or dword [esp + 0xd4], 0xffffffff
test edi, edi
je 0x1001d0a1
push edi
call fcn.10040fec
pop ecx
xor ecx, ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ecx
mov esi, dword [esp + 0x5c]
lea eax, [esp + 0x48]
push eax
push 0xf30
push 0x79c0
push ecx
lea eax, [esp + 0x60]
push 0x74c6
push eax
call fcn.1001e2f0
add esp, 0x18
mov dword [esp + 0x20], ebx
xor edi, edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x20], 0xffffffec
jmp 0x1001d0e7
call fcn.1001c982
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0xfffffff6
jl 0x1001d0de
mov dword [esp + 0x20], edi
jmp 0x1001d12c
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 3
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x8c], ebx
push eax
lea edx, [esp + 0x88]
lea ecx, [esp + 0x90]
call fcn.1001c9a6
pop ecx
pop ecx
cmp dword [esp + 0x20], edi
jne 0x1001d133
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffff
je 0x1001d0f4
mov ecx, dword [esp + 0x50]
inc ecx
jmp 0x1001ce30
lea ecx, [esp + 0x48]
call fcn.1001c9e5
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], 0x2537
cmp dword [esp + 0x28], 0xd32
jge 0x1001d22c
push 0x1064ca64
push 0x1064ca6c
push 0x10007848
call fcn.100405bb
push 0xc3508
push 0xffffffffffffffff
push 0x1064d670
call fcn.10040d90
add esp, 0x18
mov ecx, ebx
call fcn.1001ca5c
inc ebx
cmp ebx, 0x186a1
jl 0x1001d188
xorps xmm0, xmm0
mov ecx, 0x1064d678
movlpd qword [0x1064d670], xmm0
mov eax, dword [ecx - 8]
add dword [ecx], eax
mov eax, dword [ecx - 4]
adc dword [ecx + 4], eax
add ecx, 8
cmp ecx, 0x10710b78
jl 0x1001d1a8
cmp dword [0x1064ca6c], 0
mov esi, edi
jle 0x1001d22c
push 0x1064cc44
push 0x1064ca68
push 0x10007848
call fcn.100405bb
mov ecx, dword [0x1064cc44]
add esp, 0xc
mov eax, dword [0x1064ca68]
mov edx, dword [ecx*8 + 0x1064d670]
sub edx, dword [eax*8 + 0x1064d668]
mov ecx, dword [ecx*8 + 0x1064d674]
sbb ecx, dword [eax*8 + 0x1064d66c]
push edi
push 0x3b9aca07
push ecx
push edx
call fcn.10059620
push edx
push eax
push 0x10007d94
call fcn.10040c03
add esp, 0xc
inc esi
cmp esi, dword [0x1064ca6c]
jl 0x1001d1c9
mov dword [esp + 0x1c], 0x5196ee4e
lea ecx, [esp + 0xb4]
push 3
call fcn.10013d69
mov dword [esp + 0x18], edi
jmp 0x1001d25b
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xb4]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1001d248
imul ecx, dword [esp + 0x10], 0x9d22
xor edx, edx
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0xb4]
cmp ecx, eax
setge dl
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
cmp eax, 0xb2c5
mov eax, dword [esp + 0x10]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x10]
setg cl
sub esi, ecx
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, eax
setl dl
xor ecx, ecx
sub edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, edx
setg cl
cmp ecx, dword [edi + 8]
jne 0x1001d2d7
mov eax, dword [esp + 0x10]
mov dword [edi + 8], eax
jmp 0x1001d2dc
call fcn.1001c9eb
push dword [esp + 0xb4]
call fcn.10040fec
pop ecx
jmp 0x1001cb26
push 2
lea ecx, [esp + 0xac]
call fcn.10013d69
mov dword [esp + 0x18], 0x57976326
lea edx, [esp + 0xa8]
lea ecx, [esp + 0xc4]
call fcn.1001ca0f
mov dword [esp + 0x18], 0
jmp 0x1001d368
mov dword [esp + 0x44], ebx
mov dword [esp + 0x44], ebx
cmp dword [esp + 0x44], 0
jl 0x1001d364
lea edx, [esp + 0x44]
lea ecx, [esp + 0xa8]
call fcn.1001ca2e
mov byte [esp + 0x37], 0
cmp byte [esp + 0x37], 0
je 0x1001d35e
push 0xa0f
push 0x1942
push 0
call dword [sym.imp.GDI32.dll_OffsetRgn]
dec dword [esp + 0x44]
jns 0x1001d330
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jle 0x1001d321
cmp dword [esp + 0xa8], 0
je 0x1001d385
push dword [esp + 0xa8]
call fcn.10040fec
pop ecx
mov al, bl
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret