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

Disassembly:
push 0xffffffffffffffff
push 0x10078bf3
mov eax, dword fs:[0]
push eax
sub esp, 0x90
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10099060]
xor eax, esp
push eax
lea eax, [esp + 0xa4]
mov dword fs:[0], eax
mov edi, dword [esp + 0xb8]
mov esi, dword [esp + 0xb4]
cmp dword [edi + 0x14], 0
je 0x1002ae2c
lea eax, [esp + 0x48]
push eax
call fcn.1002b0f0
mov dword [esp + 0xac], 0
cmp dword [esi + 0x18], 8
jb 0x1002a59c
mov ebp, dword [esi + 4]
lea eax, [esi + 4]
mov dword [esp + 0x14], eax
jmp 0x1002a5a3
lea ebp, [esi + 4]
mov dword [esp + 0x14], ebp
mov eax, edi
call fcn.100078f0
push eax
push ebp
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x1002a602
jmp 0x1002a5c0
mov ecx, dword [esp + 0xb8]
mov ecx, dword [ecx + 0x14]
sub eax, ebp
shr eax, 1
lea esi, [ecx + eax]
lea ebx, [esp + 0x18]
lea edi, [esp + 0x48]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
call fcn.1002b150
mov eax, dword [esp + 0xb8]
call fcn.100078f0
push eax
lea edx, [ebp + esi*2]
push edx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x1002a5c0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
sub eax, ecx
sar eax, 3
xor ebx, ebx
cmp eax, ebx
jne 0x1002a633
cmp ecx, ebx
je 0x1002a622
push ecx
call fcn.1005f31a
add esp, 4
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
jmp 0x1002ae1f
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esp + 0xb8]
sub ecx, dword [edx + 0x14]
mov edx, dword [esp + 0xb4]
mov edx, dword [edx + 0x14]
imul eax, ecx
add eax, edx
mov dword [esp + 0x40], eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x40], edx
call fcn.1002b0f0
lea ecx, [esp + 0x80]
push ecx
mov byte [esp + 0xb0], 1
call fcn.1002b0f0
lea edx, [esp + 0x60]
push edx
mov byte [esp + 0xb0], 2
call fcn.1002b0f0
mov byte [esp + 0xac], 3
mov esi, dword [esp + 0x54]
cmp esi, dword [esp + 0x58]
jbe 0x1002a6aa
call fcn.1005f2e0
mov ebp, dword [esp + 0x48]
mov edi, edi
mov edi, dword [esp + 0x58]
cmp dword [esp + 0x54], edi
jbe 0x1002a6bf
call fcn.1005f2e0
test ebp, ebp
je 0x1002a6c9
cmp ebp, dword [esp + 0x48]
je 0x1002a6ce
call fcn.1005f2e0
cmp esi, edi
je 0x1002a764
test ebp, ebp
jne 0x1002a750
call fcn.1005f2e0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1002a6eb
call fcn.1005f2e0
cmp dword [esi], ebx
jbe 0x1002a71b
test ebp, ebp
jne 0x1002a755
call fcn.1005f2e0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1002a704
call fcn.1005f2e0
mov eax, dword [esi]
mov dword [esp + 0x18], ebx
lea ebx, [esp + 0x18]
lea edi, [esp + 0x24]
mov dword [esp + 0x1c], eax
call fcn.1002b150
test ebp, ebp
jne 0x1002a75a
call fcn.1005f2e0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1002a730
call fcn.1005f2e0
mov ebx, dword [esi + 4]
test ebp, ebp
jne 0x1002a75f
call fcn.1005f2e0
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x1002a748
call fcn.1005f2e0
add esi, 8
jmp 0x1002a6b0
mov eax, dword [ebp]
jmp 0x1002a6e1
mov eax, dword [ebp]
jmp 0x1002a6fa
mov eax, dword [ebp]
jmp 0x1002a726
mov eax, dword [ebp]
jmp 0x1002a73e
mov eax, dword [esp + 0x3c]
cmp ebx, eax
jae 0x1002a781
mov dword [esp + 0x18], ebx
lea ebx, [esp + 0x18]
lea edi, [esp + 0x24]
mov dword [esp + 0x1c], eax
call fcn.1002b150
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x54]
xor esi, esi
sar eax, 3
test eax, eax
jbe 0x1002a7de
xor ebp, ebp
cmp esi, eax
jb 0x1002a79d
call fcn.1005f2e0
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + esi*8]
mov edx, dword [esp + 0xbc]
mov ecx, dword [edx + 0x14]
add eax, ebp
add ecx, eax
lea ebx, [esp + 0x18]
lea edi, [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
call fcn.1002b150
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x54]
add ebp, dword [esp + 0x78]
inc esi
sar eax, 3
cmp esi, eax
jb 0x1002a79d
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov eax, edi
sub eax, ecx
xor esi, esi
sar eax, 3
mov dword [esp + 0x7c], esi
mov dword [esp + 0x44], esi
cmp esi, eax
jae 0x1002a90e
mov eax, dword [ecx + esi*8]
sub eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0xb8]
xor edx, edx
div dword [ebx + 0x14]
mov edx, edi
sub edx, ecx
sar edx, 3
add dword [esp + 0x44], eax
cmp esi, edx
jb 0x1002a82e
call fcn.1005f2e0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
mov eax, dword [ecx + esi*8 + 4]
imul ebx, dword [esp + 0x78]
mov edx, edi
sub edx, ecx
sar edx, 3
mov dword [esp + 0x7c], eax
cmp esi, edx
jb 0x1002a857
call fcn.1005f2e0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
sub edi, ecx
sar edi, 3
lea ebp, [ecx + esi*8]
cmp esi, edi
jb 0x1002a86c
call fcn.1005f2e0
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + esi*8]
mov ecx, dword [ebp + 4]
add ecx, ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
add eax, ebx
mov dword [esp + 0x18], eax
test ecx, ecx
jne 0x1002a88a
xor eax, eax
jmp 0x1002a893
mov eax, dword [esp + 0x74]
sub eax, ecx
sar eax, 3
mov edx, dword [esp + 0x70]
mov edi, edx
sub edi, ecx
sar edi, 3
cmp edi, eax
jae 0x1002a8cf
mov eax, edx
mov byte [esp + 0x20], 0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
push edx
push ecx
lea edx, [esp + 0x20]
mov ecx, 1
mov edi, eax
call fcn.1002baa0
add esp, 8
add edi, 8
mov dword [esp + 0x70], edi
jmp 0x1002a8f6
mov edi, edx
cmp ecx, edx
jbe 0x1002a8da
call fcn.1005f2e0
mov eax, dword [esp + 0x60]
push edi
push eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x70]
call fcn.1002b1c0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov eax, edi
sub eax, ecx
inc esi
sar eax, 3
cmp esi, eax
jb 0x1002a7ff
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
cmp esi, eax
je 0x1002ab8d
jbe 0x1002aac8
mov ebp, dword [esp + 0xb4]
mov eax, dword [ebp + 0x14]
cmp esi, eax
ja 0x1002aa13
mov ebx, esi
or eax, 0xffffffff
mov esi, ebp
call fcn.10009510
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
cmp dword [ebp + 0x18], 8
jb 0x1002a956
mov edx, dword [edx]
mov eax, edi
sub eax, ecx
sar eax, 3
xor ebx, ebx
mov dword [esp + 0x3c], edx
test eax, eax
jbe 0x1002ab94
mov esi, eax
sub esi, ebx
dec esi
cmp esi, eax
jb 0x1002a981
call fcn.1005f2e0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, edi
sub edx, ecx
sar edx, 3
lea eax, [ecx + esi*8]
mov dword [esp + 0x20], eax
cmp esi, edx
jb 0x1002a9a0
call fcn.1005f2e0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
sub edi, ecx
sar edi, 3
lea ebp, [ecx + esi*8]
cmp esi, edi
jb 0x1002a9b5
call fcn.1005f2e0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x6c]
lea edi, [ecx + esi*8]
sar eax, 3
cmp esi, eax
jb 0x1002a9cc
call fcn.1005f2e0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
sub ecx, dword [ebp]
mov edx, dword [edi]
mov eax, dword [esp + 0x3c]
add ecx, ecx
push ecx
lea ecx, [eax + edx*2]
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [edx + esi*8]
lea edx, [eax + ecx*2]
push edx
call fcn.1005f620
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov eax, edi
sub eax, ecx
inc ebx
sar eax, 3
add esp, 0xc
cmp ebx, eax
jb 0x1002a96b
jmp 0x1002ab8d
or edx, 0xffffffff
sub esi, eax
sub edx, eax
cmp edx, esi
ja 0x1002aa2b
call fcn.1005eb5b
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
test esi, esi
jbe 0x1002a94a
mov ebx, dword [ebp + 0x14]
add ebx, esi
mov edi, ebx
mov eax, ebp
call fcn.100095c0
test al, al
je 0x1002a942
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x14]
cmp esi, 1
jne 0x1002aa6f
cmp dword [ebp + 0x18], 8
jb 0x1002aa65
mov eax, dword [edx]
xor esi, esi
mov word [eax + ecx*2], si
jmp 0x1002aa95
mov eax, edx
xor esi, esi
mov word [eax + ecx*2], si
jmp 0x1002aa95
cmp dword [ebp + 0x18], 8
jb 0x1002aa79
mov eax, dword [edx]
jmp 0x1002aa7b
mov eax, edx
lea edi, [eax + ecx*2]
xor eax, eax
mov ecx, esi
movzx esi, ax
mov eax, esi
shl esi, 0x10
or eax, esi
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], ebx
jb 0x1002aab3
mov eax, dword [edx]
xor ecx, ecx
mov word [eax + ebx*2], cx
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x1002a94e
xor ecx, ecx
mov eax, edx
mov word [eax + ebx*2], cx
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x1002a94e
mov eax, dword [esp + 0xb4]
cmp dword [eax + 0x18], 8
jb 0x1002aadd
mov edx, dword [esp + 0x14]
mov ebp, dword [edx]
jmp 0x1002aae1
mov ebp, dword [esp + 0x14]
mov eax, edi
sub eax, ecx
sar eax, 3
xor esi, esi
test eax, eax
jbe 0x1002ab8d
cmp esi, eax
jb 0x1002ab03
call fcn.1005f2e0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, edi
sub edx, ecx
sar edx, 3
lea eax, [ecx + esi*8]
mov dword [esp + 0x20], eax
cmp esi, edx
jb 0x1002ab22
call fcn.1005f2e0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
sub edi, ecx
sar edi, 3
lea ebx, [ecx + esi*8]
cmp esi, edi
jb 0x1002ab37
call fcn.1005f2e0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x6c]
lea edi, [ecx + esi*8]
sar eax, 3
cmp esi, eax
jb 0x1002ab4e
call fcn.1005f2e0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
sub ecx, dword [ebx]
mov edx, dword [edi]
add ecx, ecx
push ecx
mov ecx, dword [esp + 0x70]
lea eax, [ebp + edx*2]
mov edx, dword [ecx + esi*8]
push eax
lea eax, [ebp + edx*2]
push eax
call fcn.1005f620
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov eax, edi
sub eax, ecx
inc esi
sar eax, 3
add esp, 0xc
cmp esi, eax
jb 0x1002ab03
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
cmp ebx, eax
jbe 0x1002abb2
call fcn.1005f2e0
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x80]
lea esp, [esp]
mov esi, eax
cmp dword [esp + 0x8c], eax
jbe 0x1002abd0
call fcn.1005f2e0
test edi, edi
je 0x1002abdd
cmp edi, dword [esp + 0x80]
je 0x1002abe2
call fcn.1005f2e0
cmp ebx, esi
je 0x1002ac9d
mov eax, dword [esp + 0xb4]
call fcn.100078f0
mov ebp, eax
test edi, edi
jne 0x1002ac8a
call fcn.1005f2e0
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1002ac11
call fcn.1005f2e0
test edi, edi
jne 0x1002ac91
call fcn.1005f2e0
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1002ac26
call fcn.1005f2e0
test edi, edi
jne 0x1002ac95
call fcn.1005f2e0
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1002ac3b
call fcn.1005f2e0
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0xbc]
sub ecx, esi
add ecx, ecx
push ecx
call fcn.100078f0
push eax
lea edx, [ebp + esi*2]
push edx
call fcn.10063220
add esp, 0xc
test edi, edi
jne 0x1002ac99
call fcn.1005f2e0
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x1002ac74
call fcn.1005f2e0
mov eax, dword [esp + 0x90]
mov ebp, dword [esp + 0xb4]
add ebx, 8
jmp 0x1002abc0
mov eax, dword [edi]
jmp 0x1002ac07
mov eax, dword [edi]
jmp 0x1002ac1c
mov eax, dword [edi]
jmp 0x1002ac31
mov eax, dword [edi]
jmp 0x1002ac6a
mov eax, dword [ebp + 0x14]
mov esi, dword [esp + 0x40]
cmp esi, eax
ja 0x1002acb9
mov ebx, esi
or eax, 0xffffffff
mov esi, ebp
call fcn.10009510
jmp 0x1002ad73
or ecx, 0xffffffff
sub esi, eax
sub ecx, eax
cmp ecx, esi
ja 0x1002acc9
call fcn.1005eb5b
test esi, esi
jbe 0x1002ad73
mov ebx, dword [ebp + 0x14]
add ebx, esi
cmp ebx, 0x7ffffffe
jbe 0x1002ace3
call fcn.1005eb5b
mov eax, dword [ebp + 0x18]
cmp eax, ebx
jae 0x1002ad15
mov edx, dword [ebp + 0x14]
push edx
push ebx
push ebp
call fcn.1000a8e0
test ebx, ebx
jbe 0x1002ad73
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x14]
cmp esi, 1
jne 0x1002ad38
cmp dword [ebp + 0x18], 8
jb 0x1002ad2e
mov eax, dword [edx]
xor esi, esi
mov word [eax + ecx*2], si
jmp 0x1002ad5e
test ebx, ebx
jne 0x1002acf7
cmp eax, 8
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x14], ebx
jb 0x1002ad27
mov eax, dword [eax]
xor ecx, ecx
mov word [eax], cx
jmp 0x1002ad73
mov eax, edx
xor esi, esi
mov word [eax + ecx*2], si
jmp 0x1002ad5e
cmp dword [ebp + 0x18], 8
jb 0x1002ad42
mov eax, dword [edx]
jmp 0x1002ad44
mov eax, edx
lea edi, [eax + ecx*2]
xor eax, eax
mov ecx, esi
movzx esi, ax
mov eax, esi
shl esi, 0x10
or eax, esi
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], ebx
jb 0x1002ad6b
mov eax, dword [edx]
jmp 0x1002ad6d
mov eax, edx
xor edx, edx
mov word [eax + ebx*2], dx
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x1002ad84
push eax
call fcn.1005f31a
add esp, 4
mov eax, dword [esp + 0x60]
xor esi, esi
push eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
call fcn.1005f31a
mov eax, dword [esp + 0x90]
add esp, 4
cmp eax, esi
je 0x1002adb3
push eax
call fcn.1005f31a
add esp, 4
mov ecx, dword [esp + 0x80]
push ecx
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
call fcn.1005f31a
mov eax, dword [esp + 0x34]
add esp, 4
cmp eax, esi
je 0x1002ade9
push eax
call fcn.1005f31a
add esp, 4
mov edx, dword [esp + 0x24]
push edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
call fcn.1005f31a
mov eax, dword [esp + 0x58]
add esp, 4
cmp eax, esi
je 0x1002ae13
push eax
call fcn.1005f31a
add esp, 4
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov eax, dword [esp + 0x48]
push eax
call fcn.1005f31a
add esp, 4
mov ecx, dword [esp + 0xa4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret