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

Disassembly:
push 0xffffffffffffffff
push 0x1004f8a3
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10065060]
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 0x1001fd0c
lea eax, [esp + 0x4c]
push eax
call fcn.10008eb0
mov dword [esp + 0xb4], ebx
cmp dword [esi + 0x18], 8
jb 0x1001f339
mov edi, dword [esi + 4]
lea eax, [esi + 4]
mov dword [esp + 0x18], eax
jmp 0x1001f340
lea edi, [esi + 4]
mov dword [esp + 0x18], edi
mov eax, ebp
call fcn.10001b70
push eax
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
cmp eax, ebx
je 0x1001f3fd
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 0x1001f375
xor edx, edx
jmp 0x1001f37e
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 0x1001f3b8
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.10021560
add esp, 8
add ebx, 8
mov dword [esp + 0x5c], ebx
jmp 0x1001f3da
cmp ecx, eax
jbe 0x1001f3c1
call fcn.1003a2ad
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.10020650
mov eax, ebp
call fcn.10001b70
push eax
lea edx, [edi + esi*2]
push edx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
xor ebx, ebx
cmp eax, ebx
jne 0x1001f357
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 0x1001f431
cmp ecx, ebx
je 0x1001f41b
push ecx
call fcn.1003a2e7
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 0x1001fd04
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.10008eb0
lea eax, [esp + 0x64]
push eax
mov byte [esp + 0xb8], 1
call fcn.10008eb0
lea ecx, [esp + 0x88]
push ecx
mov byte [esp + 0xb8], 2
call fcn.10008eb0
mov byte [esp + 0xb4], 3
mov esi, dword [esp + 0x58]
xor ebx, ebx
cmp esi, dword [esp + 0x5c]
jbe 0x1001f4a2
call fcn.1003a2ad
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
cmp dword [esp + 0x58], edi
jbe 0x1001f4b5
call fcn.1003a2ad
test ebp, ebp
je 0x1001f4bf
cmp ebp, dword [esp + 0x4c]
je 0x1001f4c4
call fcn.1003a2ad
cmp esi, edi
je 0x1001f55a
test ebp, ebp
jne 0x1001f546
call fcn.1003a2ad
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1001f4e1
call fcn.1003a2ad
cmp dword [esi], ebx
jbe 0x1001f511
test ebp, ebp
jne 0x1001f54b
call fcn.1003a2ad
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1001f4fa
call fcn.1003a2ad
mov edx, dword [esi]
mov dword [esp + 0x40], ebx
lea ebx, [esp + 0x40]
lea edi, [esp + 0x28]
mov dword [esp + 0x44], edx
call fcn.10020280
test ebp, ebp
jne 0x1001f550
call fcn.1003a2ad
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1001f526
call fcn.1003a2ad
mov ebx, dword [esi + 4]
test ebp, ebp
jne 0x1001f555
call fcn.1003a2ad
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1001f53e
call fcn.1003a2ad
add esi, 8
jmp 0x1001f4a6
mov eax, dword [ebp]
jmp 0x1001f4d7
mov eax, dword [ebp]
jmp 0x1001f4f0
mov eax, dword [ebp]
jmp 0x1001f51c
mov eax, dword [ebp]
jmp 0x1001f534
cmp ebx, dword [esp + 0x80]
jae 0x1001f57f
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.10020280
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 0x1001f64f
xor ebp, ebp
cmp esi, eax
jb 0x1001f5a7
call fcn.1003a2ad
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 0x1001f5d0
xor ecx, ecx
jmp 0x1001f5d9
mov ecx, dword [esp + 0x78]
sub ecx, eax
sar ecx, 3
mov edx, ebx
sub edx, eax
sar edx, 3
cmp edx, ecx
jae 0x1001f611
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.10021560
lea ebx, [edi + 8]
add esp, 8
mov dword [esp + 0x74], ebx
jmp 0x1001f637
cmp eax, ebx
jbe 0x1001f61a
call fcn.1003a2ad
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.10020650
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 0x1001f5a7
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 0x1001f79e
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 0x1001f6a5
call fcn.1003a2ad
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 0x1001f6d1
call fcn.1003a2ad
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 0x1001f6e6
call fcn.1003a2ad
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 0x1001f707
xor eax, eax
jmp 0x1001f713
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 0x1001f755
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.10021560
add esp, 8
add edi, 8
mov dword [esp + 0x98], edi
jmp 0x1001f782
mov edi, edx
cmp ecx, edx
jbe 0x1001f760
call fcn.1003a2ad
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.10020650
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 0x1001f673
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
cmp ebp, eax
je 0x1001fa9d
jbe 0x1001f9cb
mov edx, dword [esp + 0xbc]
mov eax, dword [edx + 0x14]
cmp ebp, eax
ja 0x1001f8b1
or eax, 0xffffffff
mov ebx, ebp
mov esi, edx
call fcn.10002450
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov ebx, esi
mov edx, dword [esp + 0x18]
cmp dword [ebx + 0x18], 8
jb 0x1001f7eb
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 0x1001fa99
mov esi, eax
sub esi, ebx
dec esi
cmp esi, eax
jb 0x1001f816
call fcn.1003a2ad
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 0x1001f835
call fcn.1003a2ad
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 0x1001f84a
call fcn.1003a2ad
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 0x1001f867
call fcn.1003a2ad
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.1003a610
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 0x1001f800
jmp 0x1001fa99
or edx, 0xffffffff
sub ebp, eax
sub edx, eax
cmp edx, ebp
ja 0x1001f8c9
call fcn.10039dbd
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0xbc]
test ebp, ebp
jbe 0x1001f7df
mov esi, dword [ebx + 0x14]
add esi, ebp
cmp esi, 0x7ffffffe
jbe 0x1001f8f2
call fcn.10039dbd
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 0x18]
cmp eax, esi
jae 0x1001f930
mov eax, dword [ebx + 0x14]
push eax
push esi
push ebx
call fcn.100027f0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
test esi, esi
jbe 0x1001f7df
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x18]
cmp ebp, 1
jne 0x1001f972
cmp dword [ebx + 0x18], 8
jb 0x1001f968
mov eax, dword [edx]
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1001f998
test esi, esi
jne 0x1001f90e
mov edx, dword [esp + 0x18]
mov dword [ebx + 0x14], esi
cmp eax, 8
jb 0x1001f954
mov eax, dword [edx]
xor ecx, ecx
mov word [eax], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1001f7e3
xor ecx, ecx
mov eax, edx
mov word [eax], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1001f7e3
mov eax, edx
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1001f998
cmp dword [ebx + 0x18], 8
jb 0x1001f97c
mov eax, dword [edx]
jmp 0x1001f97e
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 0x1001f9b6
mov eax, dword [edx]
xor ecx, ecx
mov word [eax + esi*2], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1001f7e3
xor ecx, ecx
mov eax, edx
mov word [eax + esi*2], cx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x1001f7e3
mov eax, dword [esp + 0xbc]
cmp dword [eax + 0x18], 8
jb 0x1001f9e0
mov edx, dword [esp + 0x18]
mov ebp, dword [edx]
jmp 0x1001f9e4
mov ebp, dword [esp + 0x18]
mov eax, edi
sub eax, ecx
sar eax, 3
xor esi, esi
test eax, eax
jbe 0x1001fa9d
cmp esi, eax
jb 0x1001fa06
call fcn.1003a2ad
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 0x1001fa25
call fcn.1003a2ad
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 0x1001fa3a
call fcn.1003a2ad
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 0x1001fa57
call fcn.1003a2ad
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.1003a610
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 0x1001fa06
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
cmp esi, ebx
jbe 0x1001faaa
call fcn.1003a2ad
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 0x1001fac8
call fcn.1003a2ad
test edi, edi
je 0x1001fad2
cmp edi, dword [esp + 0x64]
je 0x1001fad7
call fcn.1003a2ad
cmp ebx, esi
je 0x1001fb81
mov eax, dword [esp + 0xbc]
call fcn.10001b70
mov ebp, eax
test edi, edi
jne 0x1001fb71
call fcn.1003a2ad
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1001fb06
call fcn.1003a2ad
test edi, edi
jne 0x1001fb75
call fcn.1003a2ad
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1001fb1b
call fcn.1003a2ad
test edi, edi
jne 0x1001fb79
call fcn.1003a2ad
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1001fb30
call fcn.1003a2ad
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0xc4]
sub ecx, esi
add ecx, ecx
push ecx
call fcn.10001b70
push eax
lea edx, [ebp + esi*2]
push edx
call fcn.1003ca30
add esp, 0xc
test edi, edi
jne 0x1001fb7d
call fcn.1003a2ad
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1001fb69
call fcn.1003a2ad
add ebx, 8
jmp 0x1001fab0
mov eax, dword [edi]
jmp 0x1001fafc
mov eax, dword [edi]
jmp 0x1001fb11
mov eax, dword [edi]
jmp 0x1001fb26
mov eax, dword [edi]
jmp 0x1001fb5f
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0x7c]
cmp ebx, eax
ja 0x1001fb9b
or eax, 0xffffffff
mov esi, ebp
call fcn.10002450
jmp 0x1001fc51
or ecx, 0xffffffff
sub ebx, eax
sub ecx, eax
cmp ecx, ebx
ja 0x1001fbab
call fcn.10039dbd
test ebx, ebx
jbe 0x1001fc51
mov esi, dword [ebp + 0x14]
add esi, ebx
cmp esi, 0x7ffffffe
jbe 0x1001fbc5
call fcn.10039dbd
mov eax, dword [ebp + 0x18]
cmp eax, esi
jae 0x1001fbf7
mov edx, dword [ebp + 0x14]
push edx
push esi
push ebp
call fcn.100027f0
test esi, esi
jbe 0x1001fc51
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x18]
cmp ebx, 1
jne 0x1001fc1a
cmp dword [ebp + 0x18], 8
jb 0x1001fc10
mov eax, dword [edx]
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1001fc40
test esi, esi
jne 0x1001fbd9
cmp eax, 8
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x14], esi
jb 0x1001fc09
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
jmp 0x1001fc51
mov eax, edx
xor edi, edi
mov word [eax + ecx*2], di
jmp 0x1001fc40
cmp dword [ebp + 0x18], 8
jb 0x1001fc24
mov eax, dword [edx]
jmp 0x1001fc26
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 0x1001fc4b
mov edx, dword [edx]
xor eax, eax
mov word [edx + esi*2], ax
mov eax, dword [esp + 0x94]
test eax, eax
je 0x1001fc65
push eax
call fcn.1003a2e7
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.1003a2e7
mov eax, dword [esp + 0x74]
xor esi, esi
add esp, 4
cmp eax, esi
je 0x1001fc9f
push eax
call fcn.1003a2e7
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.1003a2e7
mov eax, dword [esp + 0x38]
add esp, 4
cmp eax, esi
je 0x1001fcc9
push eax
call fcn.1003a2e7
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.1003a2e7
mov eax, dword [esp + 0x5c]
add esp, 4
cmp eax, esi
je 0x1001fcf3
push eax
call fcn.1003a2e7
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.1003a2e7
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