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

Disassembly:
push 0xffffffffffffffff
push 0x10050ed3
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10066060]
xor eax, esp
push eax
lea eax, [esp + 0xac]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xc0]
mov esi, dword [esp + 0xbc]
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
je 0x1000d47c
lea eax, [esp + 0x4c]
push eax
call fcn.1000dcb0
mov dword [esp + 0xb4], ebx
cmp dword [esi + 0x18], 8
jb 0x1000caa9
mov edi, dword [esi + 4]
lea eax, [esi + 4]
mov dword [esp + 0x18], eax
jmp 0x1000cab0
lea edi, [esi + 4]
mov dword [esp + 0x18], edi
mov eax, ebp
call fcn.10007ab0
push eax
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
cmp eax, ebx
je 0x1000cb6d
mov ecx, dword [ebp + 0x14]
sub eax, edi
shr eax, 1
lea esi, [ecx + eax]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], esi
cmp ecx, ebx
jne 0x1000cae5
xor edx, edx
jmp 0x1000caee
mov edx, dword [esp + 0x60]
sub edx, ecx
sar edx, 3
mov eax, dword [esp + 0x5c]
mov ebx, eax
sub ebx, ecx
sar ebx, 3
cmp ebx, edx
mov ebx, eax
jae 0x1000cb28
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x24], 0
mov ecx, dword [esp + 0x24]
push ecx
push edx
lea edx, [esp + 0x24]
mov ecx, 1
call fcn.1000f520
add esp, 8
add ebx, 8
mov dword [esp + 0x5c], ebx
jmp 0x1000cb4a
cmp ecx, eax
jbe 0x1000cb31
call fcn.100378c0
mov eax, dword [esp + 0x4c]
push ebx
push eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x5c]
call fcn.1000e520
mov eax, ebp
call fcn.10007ab0
push eax
lea edx, [edi + esi*2]
push edx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
xor ebx, ebx
cmp eax, ebx
jne 0x1000cac7
mov esi, dword [esp + 0xbc]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
sub eax, ecx
sar eax, 3
cmp eax, ebx
jne 0x1000cba1
cmp ecx, ebx
je 0x1000cb8b
push ecx
call fcn.100378fa
add esp, 4
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
push eax
jmp 0x1000d474
mov ecx, dword [esp + 0xc4]
mov ecx, dword [ecx + 0x14]
sub ecx, dword [ebp + 0x14]
mov esi, dword [esi + 0x14]
imul eax, ecx
lea edx, [esp + 0x28]
add eax, esi
push edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], eax
call fcn.1000dcb0
lea eax, [esp + 0x64]
push eax
mov byte [esp + 0xb8], 1
call fcn.1000dcb0
lea ecx, [esp + 0x88]
push ecx
mov byte [esp + 0xb8], 2
call fcn.1000dcb0
mov byte [esp + 0xb4], 3
mov esi, dword [esp + 0x58]
xor ebx, ebx
cmp esi, dword [esp + 0x5c]
jbe 0x1000cc12
call fcn.100378c0
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
cmp dword [esp + 0x58], edi
jbe 0x1000cc25
call fcn.100378c0
test ebp, ebp
je 0x1000cc2f
cmp ebp, dword [esp + 0x4c]
je 0x1000cc34
call fcn.100378c0
cmp esi, edi
je 0x1000ccca
test ebp, ebp
jne 0x1000ccb6
call fcn.100378c0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1000cc51
call fcn.100378c0
cmp dword [esi], ebx
jbe 0x1000cc81
test ebp, ebp
jne 0x1000ccbb
call fcn.100378c0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1000cc6a
call fcn.100378c0
mov edx, dword [esi]
mov dword [esp + 0x40], ebx
lea ebx, [esp + 0x40]
lea edi, [esp + 0x28]
mov dword [esp + 0x44], edx
call fcn.1000dd40
test ebp, ebp
jne 0x1000ccc0
call fcn.100378c0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1000cc96
call fcn.100378c0
mov ebx, dword [esi + 4]
test ebp, ebp
jne 0x1000ccc5
call fcn.100378c0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1000ccae
call fcn.100378c0
add esi, 8
jmp 0x1000cc16
mov eax, dword [ebp]
jmp 0x1000cc47
mov eax, dword [ebp]
jmp 0x1000cc60
mov eax, dword [ebp]
jmp 0x1000cc8c
mov eax, dword [ebp]
jmp 0x1000cca4
cmp ebx, dword [esp + 0x80]
jae 0x1000ccef
mov eax, dword [esp + 0x80]
mov dword [esp + 0x40], ebx
lea ebx, [esp + 0x40]
lea edi, [esp + 0x28]
mov dword [esp + 0x44], eax
call fcn.1000dd40
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x74]
sar eax, 3
xor esi, esi
test eax, eax
jbe 0x1000cdbf
xor ebp, ebp
cmp esi, eax
jb 0x1000cd17
call fcn.100378c0
mov ebx, dword [esp + 0x74]
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + esi*8]
mov edx, dword [esp + 0xc4]
mov ecx, dword [edx + 0x14]
add eax, ebp
add ecx, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], ecx
test eax, eax
jne 0x1000cd40
xor ecx, ecx
jmp 0x1000cd49
mov ecx, dword [esp + 0x78]
sub ecx, eax
sar ecx, 3
mov edx, ebx
sub edx, eax
sar edx, 3
cmp edx, ecx
jae 0x1000cd81
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x48], 0
mov eax, dword [esp + 0x48]
push eax
push ecx
lea edx, [esp + 0x24]
mov ecx, 1
mov eax, ebx
mov edi, ebx
call fcn.1000f520
lea ebx, [edi + 8]
add esp, 8
mov dword [esp + 0x74], ebx
jmp 0x1000cda7
cmp eax, ebx
jbe 0x1000cd8a
call fcn.100378c0
mov eax, dword [esp + 0x64]
push ebx
push eax
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x74]
call fcn.1000e520
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x58]
add ebp, dword [esp + 0x24]
inc esi
sar eax, 3
cmp esi, eax
jb 0x1000cd17
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, edi
sub eax, ecx
xor esi, esi
sar eax, 3
mov dword [esp + 0x48], esi
mov dword [esp + 0x84], esi
cmp esi, eax
jae 0x1000cf0e
mov eax, dword [ecx + esi*8]
sub eax, dword [esp + 0x48]
mov ebx, dword [esp + 0xc0]
xor edx, edx
div dword [ebx + 0x14]
mov edx, edi
sub edx, ecx
sar edx, 3
add dword [esp + 0x84], eax
cmp esi, edx
jb 0x1000ce15
call fcn.100378c0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x84]
mov eax, dword [ecx + esi*8 + 4]
imul ebx, dword [esp + 0x24]
mov edx, edi
sub edx, ecx
sar edx, 3
mov dword [esp + 0x48], eax
cmp esi, edx
jb 0x1000ce41
call fcn.100378c0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
sub edi, ecx
sar edi, 3
lea ebp, [ecx + esi*8]
cmp esi, edi
jb 0x1000ce56
call fcn.100378c0
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + esi*8]
mov ecx, dword [ebp + 4]
add ecx, ebx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x94]
add eax, ebx
mov dword [esp + 0x40], eax
test ecx, ecx
jne 0x1000ce77
xor eax, eax
jmp 0x1000ce83
mov eax, dword [esp + 0x9c]
sub eax, ecx
sar eax, 3
mov edx, dword [esp + 0x98]
mov edi, edx
sub edi, ecx
sar edi, 3
cmp edi, eax
jae 0x1000cec5
mov eax, edx
mov byte [esp + 0x1c], 0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
push edx
push ecx
lea edx, [esp + 0x48]
mov ecx, 1
mov edi, eax
call fcn.1000f520
add esp, 8
add edi, 8
mov dword [esp + 0x98], edi
jmp 0x1000cef2
mov edi, edx
cmp ecx, edx
jbe 0x1000ced0
call fcn.100378c0
mov eax, dword [esp + 0x88]
push edi
push eax
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x98]
call fcn.1000e520
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, edi
sub eax, ecx
inc esi
sar eax, 3
cmp esi, eax
jb 0x1000cde3
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
cmp ebp, eax
je 0x1000d20d
jbe 0x1000d13b
mov edx, dword [esp + 0xbc]
mov eax, dword [edx + 0x14]
cmp ebp, eax
ja 0x1000d021
or eax, 0xffffffff
mov ebx, ebp
mov esi, edx
call fcn.1000a030
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov ebx, esi
mov edx, dword [esp + 0x18]
cmp dword [ebx + 0x18], 8
jb 0x1000cf5b
mov edx, dword [edx]
mov eax, edi
sub eax, ecx
sar eax, 3
xor ebx, ebx
mov dword [esp + 0x24], edx
test eax, eax
jbe 0x1000d209
mov esi, eax
sub esi, ebx
dec esi
cmp esi, eax
jb 0x1000cf86
call fcn.100378c0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, edi
sub edx, ecx
sar edx, 3
lea eax, [ecx + esi*8]
mov dword [esp + 0x1c], eax
cmp esi, edx
jb 0x1000cfa5
call fcn.100378c0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
sub edi, ecx
sar edi, 3
lea ebp, [ecx + esi*8]
cmp esi, edi
jb 0x1000cfba
call fcn.100378c0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x98]
sub eax, dword [esp + 0x94]
lea edi, [ecx + esi*8]
sar eax, 3
cmp esi, eax
jb 0x1000cfd7
call fcn.100378c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
sub ecx, dword [ebp]
mov edx, dword [edi]
mov eax, dword [esp + 0x24]
add ecx, ecx
push ecx
lea ecx, [eax + edx*2]
mov edx, dword [esp + 0x98]
push ecx
mov ecx, dword [edx + esi*8]
lea edx, [eax + ecx*2]
push edx
call fcn.100372c0
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov eax, edi
sub eax, ecx
inc ebx
sar eax, 3
add esp, 0xc
cmp ebx, eax
jb 0x1000cf70
jmp 0x1000d209
or edx, 0xffffffff
sub ebp, eax
sub edx, eax
cmp edx, ebp
ja 0x1000d039
call fcn.10037069
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0xbc]
test ebp, ebp
jbe 0x1000cf4f
mov esi, dword [ebx + 0x14]
add esi, ebp
cmp esi, 0x7ffffffe
jbe 0x1000d062
call fcn.10037069
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 0x18]
cmp eax, esi
jae 0x1000d0a0
mov eax, dword [ebx + 0x14]
push eax
push esi
push ebx
call fcn.1000bc50
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
test esi, esi
jbe 0x1000cf4f
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x18]
cmp ebp, 1
jne 0x1000d0e2
cmp dword [ebx + 0x18], 8
jb 0x1000d0d8
mov eax, dword [edx]
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1000d108
test esi, esi
jne 0x1000d07e
mov edx, dword [esp + 0x18]
mov dword [ebx + 0x14], esi
cmp eax, 8
jb 0x1000d0c4
mov eax, dword [edx]
xor ecx, ecx
mov word [eax], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1000cf53
xor ecx, ecx
mov eax, edx
mov word [eax], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1000cf53
mov eax, edx
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1000d108
cmp dword [ebx + 0x18], 8
jb 0x1000d0ec
mov eax, dword [edx]
jmp 0x1000d0ee
mov eax, edx
lea edi, [eax + ecx*2]
xor eax, eax
mov ecx, ebp
movzx ebp, ax
mov eax, ebp
shl ebp, 0x10
or eax, ebp
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
cmp dword [ebx + 0x18], 8
mov dword [ebx + 0x14], esi
jb 0x1000d126
mov eax, dword [edx]
xor ecx, ecx
mov word [eax + esi*2], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1000cf53
xor ecx, ecx
mov eax, edx
mov word [eax + esi*2], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1000cf53
mov eax, dword [esp + 0xbc]
cmp dword [eax + 0x18], 8
jb 0x1000d150
mov edx, dword [esp + 0x18]
mov ebp, dword [edx]
jmp 0x1000d154
mov ebp, dword [esp + 0x18]
mov eax, edi
sub eax, ecx
sar eax, 3
xor esi, esi
test eax, eax
jbe 0x1000d20d
cmp esi, eax
jb 0x1000d176
call fcn.100378c0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, edi
sub edx, ecx
sar edx, 3
lea eax, [ecx + esi*8]
mov dword [esp + 0x1c], eax
cmp esi, edx
jb 0x1000d195
call fcn.100378c0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
sub edi, ecx
sar edi, 3
lea ebx, [ecx + esi*8]
cmp esi, edi
jb 0x1000d1aa
call fcn.100378c0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x98]
sub eax, dword [esp + 0x94]
lea edi, [ecx + esi*8]
sar eax, 3
cmp esi, eax
jb 0x1000d1c7
call fcn.100378c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
sub ecx, dword [ebx]
mov edx, dword [edi]
add ecx, ecx
push ecx
mov ecx, dword [esp + 0x98]
lea eax, [ebp + edx*2]
mov edx, dword [ecx + esi*8]
push eax
lea eax, [ebp + edx*2]
push eax
call fcn.100372c0
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov eax, edi
sub eax, ecx
inc esi
sar eax, 3
add esp, 0xc
cmp esi, eax
jb 0x1000d176
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
cmp esi, ebx
jbe 0x1000d21a
call fcn.100378c0
mov edi, dword [esp + 0x64]
mov ebx, esi
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0xbc]
mov esi, eax
cmp dword [esp + 0x70], eax
jbe 0x1000d238
call fcn.100378c0
test edi, edi
je 0x1000d242
cmp edi, dword [esp + 0x64]
je 0x1000d247
call fcn.100378c0
cmp ebx, esi
je 0x1000d2f1
mov eax, dword [esp + 0xbc]
call fcn.10007ab0
mov ebp, eax
test edi, edi
jne 0x1000d2e1
call fcn.100378c0
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1000d276
call fcn.100378c0
test edi, edi
jne 0x1000d2e5
call fcn.100378c0
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1000d28b
call fcn.100378c0
test edi, edi
jne 0x1000d2e9
call fcn.100378c0
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1000d2a0
call fcn.100378c0
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0xc4]
sub ecx, esi
add ecx, ecx
push ecx
call fcn.10007ab0
push eax
lea edx, [ebp + esi*2]
push edx
call fcn.10039c60
add esp, 0xc
test edi, edi
jne 0x1000d2ed
call fcn.100378c0
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1000d2d9
call fcn.100378c0
add ebx, 8
jmp 0x1000d220
mov eax, dword [edi]
jmp 0x1000d26c
mov eax, dword [edi]
jmp 0x1000d281
mov eax, dword [edi]
jmp 0x1000d296
mov eax, dword [edi]
jmp 0x1000d2cf
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0x7c]
cmp ebx, eax
ja 0x1000d30b
or eax, 0xffffffff
mov esi, ebp
call fcn.1000a030
jmp 0x1000d3c1
or ecx, 0xffffffff
sub ebx, eax
sub ecx, eax
cmp ecx, ebx
ja 0x1000d31b
call fcn.10037069
test ebx, ebx
jbe 0x1000d3c1
mov esi, dword [ebp + 0x14]
add esi, ebx
cmp esi, 0x7ffffffe
jbe 0x1000d335
call fcn.10037069
mov eax, dword [ebp + 0x18]
cmp eax, esi
jae 0x1000d367
mov edx, dword [ebp + 0x14]
push edx
push esi
push ebp
call fcn.1000bc50
test esi, esi
jbe 0x1000d3c1
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x18]
cmp ebx, 1
jne 0x1000d38a
cmp dword [ebp + 0x18], 8
jb 0x1000d380
mov eax, dword [edx]
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1000d3b0
test esi, esi
jne 0x1000d349
cmp eax, 8
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x14], esi
jb 0x1000d379
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
jmp 0x1000d3c1
mov eax, edx
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1000d3b0
cmp dword [ebp + 0x18], 8
jb 0x1000d394
mov eax, dword [edx]
jmp 0x1000d396
mov eax, edx
lea edi, [eax + ecx*2]
xor eax, eax
mov ecx, ebx
movzx ebx, ax
mov eax, ebx
shl ebx, 0x10
or eax, ebx
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
cmp dword [ebp + 0x18], 8
mov dword [ebp + 0x14], esi
jb 0x1000d3bb
mov edx, dword [edx]
xor eax, eax
mov word [edx + esi*2], ax
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1000d3d5
push eax
call fcn.100378fa
add esp, 4
mov ecx, dword [esp + 0x88]
xor eax, eax
push ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
call fcn.100378fa
mov eax, dword [esp + 0x74]
xor esi, esi
add esp, 4
cmp eax, esi
je 0x1000d40f
push eax
call fcn.100378fa
add esp, 4
mov edx, dword [esp + 0x64]
push edx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
call fcn.100378fa
mov eax, dword [esp + 0x38]
add esp, 4
cmp eax, esi
je 0x1000d439
push eax
call fcn.100378fa
add esp, 4
mov eax, dword [esp + 0x28]
push eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
call fcn.100378fa
mov eax, dword [esp + 0x5c]
add esp, 4
cmp eax, esi
je 0x1000d463
push eax
call fcn.100378fa
add esp, 4
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
push ecx
call fcn.100378fa
add esp, 4
mov ecx, dword [esp + 0xac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret