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

Disassembly:
push 0xffffffffffffffff
push 0x100514b3
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10067060]
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 0x1000da8c
lea eax, [esp + 0x4c]
push eax
call fcn.10007ec0
mov dword [esp + 0xb4], ebx
cmp dword [esi + 0x18], 8
jb 0x1000d0b9
mov edi, dword [esi + 4]
lea eax, [esi + 4]
mov dword [esp + 0x18], eax
jmp 0x1000d0c0
lea edi, [esi + 4]
mov dword [esp + 0x18], edi
mov eax, ebp
call fcn.10007eb0
push eax
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
cmp eax, ebx
je 0x1000d17d
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 0x1000d0f5
xor edx, edx
jmp 0x1000d0fe
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 0x1000d138
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.1000fba0
add esp, 8
add ebx, 8
mov dword [esp + 0x5c], ebx
jmp 0x1000d15a
cmp ecx, eax
jbe 0x1000d141
call fcn.10038059
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.1000eb70
mov eax, ebp
call fcn.10007eb0
push eax
lea edx, [edi + esi*2]
push edx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
xor ebx, ebx
cmp eax, ebx
jne 0x1000d0d7
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 0x1000d1b1
cmp ecx, ebx
je 0x1000d19b
push ecx
call fcn.10038093
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 0x1000da84
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.10007ec0
lea eax, [esp + 0x64]
push eax
mov byte [esp + 0xb8], 1
call fcn.10007ec0
lea ecx, [esp + 0x88]
push ecx
mov byte [esp + 0xb8], 2
call fcn.10007ec0
mov byte [esp + 0xb4], 3
mov esi, dword [esp + 0x58]
xor ebx, ebx
cmp esi, dword [esp + 0x5c]
jbe 0x1000d222
call fcn.10038059
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
cmp dword [esp + 0x58], edi
jbe 0x1000d235
call fcn.10038059
test ebp, ebp
je 0x1000d23f
cmp ebp, dword [esp + 0x4c]
je 0x1000d244
call fcn.10038059
cmp esi, edi
je 0x1000d2da
test ebp, ebp
jne 0x1000d2c6
call fcn.10038059
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1000d261
call fcn.10038059
cmp dword [esi], ebx
jbe 0x1000d291
test ebp, ebp
jne 0x1000d2cb
call fcn.10038059
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1000d27a
call fcn.10038059
mov edx, dword [esi]
mov dword [esp + 0x40], ebx
lea ebx, [esp + 0x40]
lea edi, [esp + 0x28]
mov dword [esp + 0x44], edx
call fcn.1000e390
test ebp, ebp
jne 0x1000d2d0
call fcn.10038059
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1000d2a6
call fcn.10038059
mov ebx, dword [esi + 4]
test ebp, ebp
jne 0x1000d2d5
call fcn.10038059
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1000d2be
call fcn.10038059
add esi, 8
jmp 0x1000d226
mov eax, dword [ebp]
jmp 0x1000d257
mov eax, dword [ebp]
jmp 0x1000d270
mov eax, dword [ebp]
jmp 0x1000d29c
mov eax, dword [ebp]
jmp 0x1000d2b4
cmp ebx, dword [esp + 0x80]
jae 0x1000d2ff
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.1000e390
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 0x1000d3cf
xor ebp, ebp
cmp esi, eax
jb 0x1000d327
call fcn.10038059
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 0x1000d350
xor ecx, ecx
jmp 0x1000d359
mov ecx, dword [esp + 0x78]
sub ecx, eax
sar ecx, 3
mov edx, ebx
sub edx, eax
sar edx, 3
cmp edx, ecx
jae 0x1000d391
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.1000fba0
lea ebx, [edi + 8]
add esp, 8
mov dword [esp + 0x74], ebx
jmp 0x1000d3b7
cmp eax, ebx
jbe 0x1000d39a
call fcn.10038059
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.1000eb70
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 0x1000d327
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 0x1000d51e
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 0x1000d425
call fcn.10038059
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 0x1000d451
call fcn.10038059
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 0x1000d466
call fcn.10038059
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 0x1000d487
xor eax, eax
jmp 0x1000d493
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 0x1000d4d5
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.1000fba0
add esp, 8
add edi, 8
mov dword [esp + 0x98], edi
jmp 0x1000d502
mov edi, edx
cmp ecx, edx
jbe 0x1000d4e0
call fcn.10038059
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.1000eb70
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 0x1000d3f3
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
cmp ebp, eax
je 0x1000d81d
jbe 0x1000d74b
mov edx, dword [esp + 0xbc]
mov eax, dword [edx + 0x14]
cmp ebp, eax
ja 0x1000d631
or eax, 0xffffffff
mov ebx, ebp
mov esi, edx
call fcn.1000a4b0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov ebx, esi
mov edx, dword [esp + 0x18]
cmp dword [ebx + 0x18], 8
jb 0x1000d56b
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 0x1000d819
mov esi, eax
sub esi, ebx
dec esi
cmp esi, eax
jb 0x1000d596
call fcn.10038059
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 0x1000d5b5
call fcn.10038059
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 0x1000d5ca
call fcn.10038059
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 0x1000d5e7
call fcn.10038059
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.10037890
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 0x1000d580
jmp 0x1000d819
or edx, 0xffffffff
sub ebp, eax
sub edx, eax
cmp edx, ebp
ja 0x1000d649
call fcn.10037618
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0xbc]
test ebp, ebp
jbe 0x1000d55f
mov esi, dword [ebx + 0x14]
add esi, ebp
cmp esi, 0x7ffffffe
jbe 0x1000d672
call fcn.10037618
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 0x18]
cmp eax, esi
jae 0x1000d6b0
mov eax, dword [ebx + 0x14]
push eax
push esi
push ebx
call fcn.1000c120
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
test esi, esi
jbe 0x1000d55f
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x18]
cmp ebp, 1
jne 0x1000d6f2
cmp dword [ebx + 0x18], 8
jb 0x1000d6e8
mov eax, dword [edx]
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1000d718
test esi, esi
jne 0x1000d68e
mov edx, dword [esp + 0x18]
mov dword [ebx + 0x14], esi
cmp eax, 8
jb 0x1000d6d4
mov eax, dword [edx]
xor ecx, ecx
mov word [eax], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1000d563
xor ecx, ecx
mov eax, edx
mov word [eax], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1000d563
mov eax, edx
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1000d718
cmp dword [ebx + 0x18], 8
jb 0x1000d6fc
mov eax, dword [edx]
jmp 0x1000d6fe
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 0x1000d736
mov eax, dword [edx]
xor ecx, ecx
mov word [eax + esi*2], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1000d563
xor ecx, ecx
mov eax, edx
mov word [eax + esi*2], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1000d563
mov eax, dword [esp + 0xbc]
cmp dword [eax + 0x18], 8
jb 0x1000d760
mov edx, dword [esp + 0x18]
mov ebp, dword [edx]
jmp 0x1000d764
mov ebp, dword [esp + 0x18]
mov eax, edi
sub eax, ecx
sar eax, 3
xor esi, esi
test eax, eax
jbe 0x1000d81d
cmp esi, eax
jb 0x1000d786
call fcn.10038059
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 0x1000d7a5
call fcn.10038059
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 0x1000d7ba
call fcn.10038059
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 0x1000d7d7
call fcn.10038059
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.10037890
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 0x1000d786
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
cmp esi, ebx
jbe 0x1000d82a
call fcn.10038059
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 0x1000d848
call fcn.10038059
test edi, edi
je 0x1000d852
cmp edi, dword [esp + 0x64]
je 0x1000d857
call fcn.10038059
cmp ebx, esi
je 0x1000d901
mov eax, dword [esp + 0xbc]
call fcn.10007eb0
mov ebp, eax
test edi, edi
jne 0x1000d8f1
call fcn.10038059
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1000d886
call fcn.10038059
test edi, edi
jne 0x1000d8f5
call fcn.10038059
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1000d89b
call fcn.10038059
test edi, edi
jne 0x1000d8f9
call fcn.10038059
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1000d8b0
call fcn.10038059
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0xc4]
sub ecx, esi
add ecx, ecx
push ecx
call fcn.10007eb0
push eax
lea edx, [ebp + esi*2]
push edx
call fcn.1003bea0
add esp, 0xc
test edi, edi
jne 0x1000d8fd
call fcn.10038059
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1000d8e9
call fcn.10038059
add ebx, 8
jmp 0x1000d830
mov eax, dword [edi]
jmp 0x1000d87c
mov eax, dword [edi]
jmp 0x1000d891
mov eax, dword [edi]
jmp 0x1000d8a6
mov eax, dword [edi]
jmp 0x1000d8df
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0x7c]
cmp ebx, eax
ja 0x1000d91b
or eax, 0xffffffff
mov esi, ebp
call fcn.1000a4b0
jmp 0x1000d9d1
or ecx, 0xffffffff
sub ebx, eax
sub ecx, eax
cmp ecx, ebx
ja 0x1000d92b
call fcn.10037618
test ebx, ebx
jbe 0x1000d9d1
mov esi, dword [ebp + 0x14]
add esi, ebx
cmp esi, 0x7ffffffe
jbe 0x1000d945
call fcn.10037618
mov eax, dword [ebp + 0x18]
cmp eax, esi
jae 0x1000d977
mov edx, dword [ebp + 0x14]
push edx
push esi
push ebp
call fcn.1000c120
test esi, esi
jbe 0x1000d9d1
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x18]
cmp ebx, 1
jne 0x1000d99a
cmp dword [ebp + 0x18], 8
jb 0x1000d990
mov eax, dword [edx]
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1000d9c0
test esi, esi
jne 0x1000d959
cmp eax, 8
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x14], esi
jb 0x1000d989
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
jmp 0x1000d9d1
mov eax, edx
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1000d9c0
cmp dword [ebp + 0x18], 8
jb 0x1000d9a4
mov eax, dword [edx]
jmp 0x1000d9a6
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 0x1000d9cb
mov edx, dword [edx]
xor eax, eax
mov word [edx + esi*2], ax
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1000d9e5
push eax
call fcn.10038093
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.10038093
mov eax, dword [esp + 0x74]
xor esi, esi
add esp, 4
cmp eax, esi
je 0x1000da1f
push eax
call fcn.10038093
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.10038093
mov eax, dword [esp + 0x38]
add esp, 4
cmp eax, esi
je 0x1000da49
push eax
call fcn.10038093
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.10038093
mov eax, dword [esp + 0x5c]
add esp, 4
cmp eax, esi
je 0x1000da73
push eax
call fcn.10038093
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.10038093
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