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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10041f88
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10075dd0]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x24], edi
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov ebp, dword [edi + 0x28]
cmp dword [edi + 0x24], ebp
lea esi, [edi + 0x20]
mov byte [esp + 0x80], 1
jbe 0x1002e5ed
call dword [0x10044138]
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
jbe 0x1002e5fb
call dword [0x10044138]
cmp esi, esi
je 0x1002e605
call dword [0x10044138]
mov ecx, ebp
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebp
push ebx
call fcn.10030920
add esp, 0xc
xor ebp, ebp
xor ebx, ebx
lea esp, [esp]
mov eax, dword [esi + 4]
test eax, eax
je 0x1002e687
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jae 0x1002e687
mov eax, dword [esi + 4]
test eax, eax
je 0x1002e672
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x1002e678
call dword [0x10044138]
mov ecx, dword [esi + 4]
mov dword [ebx + ecx + 0x10], ebp
add ebp, 1
add ebx, 0x18
jmp 0x1002e630
mov eax, dword [esi + 4]
test eax, eax
je 0x1002e6a4
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 4], eax
mov eax, dword [edi]
test eax, eax
je 0x1002e6b6
push eax
call fcn.1003ad72
add esp, 4
mov eax, dword [edi + 4]
xor ecx, ecx
mov edx, 0x18
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1003ad0c
xor ebp, ebp
add esp, 4
cmp dword [edi + 4], ebp
mov dword [edi], eax
jbe 0x1002e73c
xor ebx, ebx
mov eax, dword [esi + 4]
test eax, eax
je 0x1002e6fe
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x1002e704
call dword [0x10044138]
mov eax, dword [esi + 4]
mov ecx, dword [edi]
mov edx, dword [eax + ebx]
add eax, ebx
mov dword [ecx + ebx], edx
mov edx, dword [eax + 4]
add ecx, ebx
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [ecx + 0x10], edx
mov eax, dword [eax + 0x14]
add ebp, 1
mov dword [ecx + 0x14], eax
add ebx, 0x18
cmp ebp, dword [edi + 4]
jb 0x1002e6dd
mov ebx, dword [esi + 8]
cmp dword [esi + 4], ebx
jbe 0x1002e74a
call dword [0x10044138]
mov ebp, dword [esi + 4]
cmp ebp, dword [esi + 8]
mov dword [esp + 0x20], ebp
jbe 0x1002e75c
call dword [0x10044138]
cmp ebp, ebx
je 0x1002e7c2
mov ebp, dword [esi + 8]
mov ecx, ebp
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x20]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, ebp
lea edx, [eax + eax*2]
lea edx, [ecx + edx*8]
mov eax, ebx
je 0x1002e7bf
sub ecx, ebx
lea ebx, [ebx]
mov ebx, dword [eax]
mov dword [ecx + eax], ebx
mov ebx, dword [eax + 4]
mov dword [ecx + eax + 4], ebx
mov ebx, dword [eax + 8]
mov dword [ecx + eax + 8], ebx
mov ebx, dword [eax + 0xc]
mov dword [ecx + eax + 0xc], ebx
mov ebx, dword [eax + 0x10]
mov dword [ecx + eax + 0x10], ebx
mov ebx, dword [eax + 0x14]
mov dword [ecx + eax + 0x14], ebx
add eax, 0x18
cmp eax, ebp
jne 0x1002e790
mov dword [esi + 8], edx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
xor eax, eax
cmp dword [edi + 4], eax
mov dword [esp + 0x20], eax
jbe 0x1002eb2a
mov dword [esp + 0x18], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x18]
add eax, edx
cmp byte [eax + 0x14], 0
jne 0x1002e7fa
push eax
lea ecx, [esp + 0x54]
call fcn.10030ba0
jmp 0x1002eb05
mov edx, dword [eax + 4]
mov edi, dword [eax]
mov ebp, edx
not edx
or edx, edi
mov dword [esp + 0x64], edx
mov edx, dword [eax + 8]
and ebp, edi
mov dword [esp + 0x68], edx
mov dl, byte [eax + 0xc]
mov eax, dword [eax + 0x10]
xor edi, edi
mov dword [esp + 0x60], ebp
mov byte [esp + 0x6c], dl
mov dword [esp + 0x70], eax
mov dword [esp + 0x14], edi
lea ebx, [ebx]
test ecx, ecx
jne 0x1002e838
xor eax, eax
jmp 0x1002e84d
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
je 0x1002eab1
test ecx, ecx
je 0x1002e872
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1002e884
mov ebx, dword [0x10044138]
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
jmp 0x1002e88a
mov ebx, dword [0x10044138]
mov edx, dword [esp + 0x14]
cmp ebp, dword [edx + ecx]
jae 0x1002e9ce
test ecx, ecx
je 0x1002e8b4
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1002e8be
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
cmp eax, dword [edx + ecx]
jb 0x1002eac1
test ecx, ecx
mov dword [esp + 0x1c], eax
je 0x1002e8f0
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1002e8fa
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + ecx]
sub edx, 1
cmp ecx, esi
mov dword [esp + 0x64], edx
mov ebp, ecx
jbe 0x1002e918
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ebp
add ebp, eax
cmp ebp, esi
lea ebx, [esp + 0x40]
ja 0x1002e92e
cmp ebp, ecx
jae 0x1002e934
call dword [0x10044138]
lea ecx, [esp + 0x60]
push ecx
push ebp
push ebx
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x50]
call fcn.10030c50
mov ecx, dword [esp + 0x44]
add dword [esp + 0x14], 0x14
add edi, 1
test ecx, ecx
je 0x1002e976
mov esi, dword [esp + 0x48]
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1002e984
call dword [0x10044138]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
cmp eax, dword [edx + ecx + 4]
jbe 0x1002eb0d
test ecx, ecx
je 0x1002e9b3
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1002e9c1
call dword [0x10044138]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x64], edx
jmp 0x1002ea95
test ecx, ecx
je 0x1002e9eb
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1002e9f5
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
cmp ebp, dword [eax + ecx + 4]
ja 0x1002eaa4
test ecx, ecx
je 0x1002ea20
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1002ea2a
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
cmp dword [ecx + ebp + 4], 0xffffffff
je 0x1002eb0d
test ecx, ecx
je 0x1002ea56
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1002ea60
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x64]
cmp edx, dword [ecx + ebp + 4]
jbe 0x1002eb0d
test ecx, ecx
je 0x1002ea8b
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1002ea95
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
mov ebp, dword [eax + ecx + 4]
add ebp, 1
mov dword [esp + 0x60], ebp
add edi, 1
add dword [esp + 0x14], 0x14
jmp 0x1002e830
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x44]
call fcn.10030d00
jmp 0x1002eb05
cmp ecx, esi
mov ebp, ecx
jbe 0x1002ead1
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
lea edx, [edi + edi*4]
lea edi, [ebp + edx*4]
cmp edi, esi
lea eax, [esp + 0x40]
mov ebx, eax
mov dword [esp + 0x2c], ebp
ja 0x1002eaea
cmp edi, ecx
jae 0x1002eaf0
call dword [0x10044138]
lea eax, [esp + 0x60]
push eax
push edi
push ebx
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x50]
call fcn.10030c50
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
add dword [esp + 0x18], 0x18
add eax, 1
cmp eax, dword [edi + 4]
mov dword [esp + 0x20], eax
jb 0x1002e7dd
test ecx, ecx
jne 0x1002eb32
xor eax, eax
jmp 0x1002eb45
sub esi, ecx
mov eax, 0x66666667
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0xc], eax
mov eax, dword [edi + 8]
test eax, eax
je 0x1002eb58
push eax
call fcn.1003ad72
add esp, 4
mov eax, dword [edi + 0xc]
xor ecx, ecx
mov edx, 0x14
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1003ad0c
xor esi, esi
add esp, 4
cmp dword [edi + 0xc], esi
mov dword [edi + 8], eax
jbe 0x1002ebdd
xor ebp, ebp
mov ebx, dword [esp + 0x44]
test ebx, ebx
je 0x1002eba3
mov ecx, dword [esp + 0x48]
sub ecx, ebx
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x1002ebad
call dword [0x10044138]
mov ebx, dword [esp + 0x44]
mov eax, dword [edi + 8]
mov edx, dword [ebx + ebp]
lea ecx, [ebx + ebp]
add eax, ebp
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov ecx, dword [ecx + 0x10]
add esi, 1
mov dword [eax + 0x10], ecx
add ebp, 0x14
cmp esi, dword [edi + 0xc]
jb 0x1002eb80
mov eax, dword [esp + 0x54]
test eax, eax
je 0x1002ebfc
mov ecx, dword [esp + 0x58]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x14], eax
mov eax, dword [edi + 0x10]
test eax, eax
je 0x1002ec0f
push eax
call fcn.1003ad72
add esp, 4
mov eax, dword [edi + 0x14]
xor ecx, ecx
mov edx, 0x18
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1003ad0c
xor esi, esi
add esp, 4
cmp dword [edi + 0x14], esi
mov dword [edi + 0x10], eax
jbe 0x1002ec9b
xor ebp, ebp
mov ebx, dword [esp + 0x54]
test ebx, ebx
je 0x1002ec5a
mov ecx, dword [esp + 0x58]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x1002ec64
call dword [0x10044138]
mov ebx, dword [esp + 0x54]
mov eax, dword [edi + 0x10]
mov edx, dword [ebx + ebp]
lea ecx, [ebx + ebp]
mov dword [eax + ebp], edx
mov edx, dword [ecx + 4]
add eax, ebp
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [ecx + 0x14]
add esi, 1
mov dword [eax + 0x14], ecx
add ebp, 0x18
cmp esi, dword [edi + 0x14]
jb 0x1002ec37
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp eax, ecx
je 0x1002ecb0
push eax
call fcn.1003ad60
add esp, 4
xor ecx, ecx
mov eax, dword [esp + 0x44]
cmp eax, ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
je 0x1002eccd
push eax
call fcn.1003ad60
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret