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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov eax, dword [esp + 0xdc]
mov esi, dword [esp + 0xdc]
mov dword [esp + 0xa8], 0xffffffff
mov dword [esp + 0xac], 0
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 4]
sub eax, dword [esi + 8]
mov ebx, eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x60], edi
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xd0]
add eax, 0x24
mov dword [esp + 0x84], eax
mov eax, 0x40
cmp edi, eax
cmovbe eax, edi
xor edx, edx
mov esi, eax
mov eax, dword [esp + 0xdc]
mov edi, dword [eax + 0x10]
xor eax, eax
mov ecx, edi
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
lea ecx, [edi - 1]
add eax, 0xffffffff
adc edx, 0xffffffff
cmp ecx, esi
jae 0x1029f946
sub esi, edi
mov ecx, esi
xor esi, esi
shld edx, eax, cl
shl eax, cl
and ecx, 0x20
cmovne edx, eax
cmovne eax, esi
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xb4], edx
cmp dword [esp + 0xd4], eax
jae 0x102a02ac
mov edi, dword [esp + 0x60]
mov ecx, ebx
mov dword [esp + 0x74], 0
mov eax, edi
mov dword [esp + 0x70], edi
and eax, 0x18
mov dword [esp + 0x6c], eax
mov eax, 0xffffffff
shl eax, cl
not eax
mov dword [esp + 0x68], eax
lea eax, [edi - 0x20]
and eax, 0xffffffe0
add eax, 0x20
mov dword [esp + 0x90], eax
mov eax, edi
and eax, 0x1f
lea esi, [eax - 8]
lea ebx, [eax - 0x10]
mov dword [esp + 0x78], eax
sub eax, 0x18
mov dword [esp + 0x94], eax
mov eax, esi
shr eax, 3
mov dword [esp + 0x7c], esi
lea eax, [eax*8 + 8]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x50], eax
lea esi, [esi]
lea eax, [esp + 0xa4]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xa4], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
sub ecx, edx
mov dword [esp], eax
lea eax, [esp + 0xa8]
call fcn.102a02e0
mov ebx, eax
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x102a0297
mov edi, dword [esp + 0x60]
add edi, dword [esp + 0xd4]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0xd0]
lea eax, [edi + eax*4 + 0x24]
mov dword [esp + 0x58], eax
jmp 0x1029fa7b
add dword [esp + 0x44], 4
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x58], eax
je 0x102a0290
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x50]
mov eax, dword [eax]
lea edx, [edi + eax]
mov edi, dword [esp + 0x54]
cmp edx, edi
jb 0x1029fa68
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x50]
sub eax, edi
lea ecx, [ebx + eax]
mov dword [esp + 0x5c], ecx
cmp edi, 0x1f
jbe 0x102a02c0
lea eax, [ecx + edi - 0x1f]
mov dword [esp + 0x38], 0x7a143579
mov ebx, 0x85ebca87
mov ebp, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x3c], 0x61c8864e
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0x27d4eb4f
mov dword [esp + 0x2c], 0xc2b2ae3d
mov dword [esp + 0x20], 0xadc0b5d6
mov dword [esp + 0x24], 0x60ea27ee
lea esi, [esi]
imul eax, dword [ebp], 0xc2b2ae3d
imul ecx, dword [ebp + 4], 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp]
add edx, ecx
add eax, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
mov esi, eax
mov edi, edx
shld esi, edx, 0x1f
shld edi, eax, 0x1f
imul ecx, edi, 0x85ebca87
imul eax, esi, 0x9e3779b1
add ecx, eax
mov eax, esi
mul ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
imul eax, dword [ebp + 8], 0xc2b2ae3d
add dword [esp + 0x24], ecx
imul ecx, dword [ebp + 0xc], 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp + 8]
add edx, ecx
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
mov ecx, edx
mov edx, eax
shld edx, ecx, 0x1f
shld ecx, eax, 0x1f
mov eax, edx
mov edx, ecx
mov dword [esp + 8], eax
imul ecx, ecx, 0x85ebca87
imul eax, dword [esp + 8], 0x9e3779b1
mov dword [esp + 0xc], edx
add ecx, eax
mov eax, dword [esp + 8]
mul ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
imul eax, dword [ebp + 0x10], 0xc2b2ae3d
add dword [esp + 0x2c], ecx
imul ecx, dword [ebp + 0x14], 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp + 0x10]
add edx, ecx
add eax, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
mov ecx, edx
mov edx, eax
shld edx, ecx, 0x1f
shld ecx, eax, 0x1f
mov eax, edx
mov edx, ecx
mov dword [esp + 0x14], edx
imul ecx, ecx, 0x85ebca87
mov dword [esp + 0x10], eax
imul eax, dword [esp + 0x10], 0x9e3779b1
add ecx, eax
mov eax, dword [esp + 0x10]
mul ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
imul eax, dword [ebp + 0x18], 0xc2b2ae3d
add dword [esp + 0x34], ecx
imul ecx, dword [ebp + 0x1c], 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp + 0x18]
add edx, ecx
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
add ebp, 0x20
mov ecx, edx
mov edx, eax
shld edx, ecx, 0x1f
shld ecx, eax, 0x1f
mov eax, edx
mov edx, ecx
mov dword [esp + 0x18], eax
imul ecx, ecx, 0x85ebca87
imul eax, dword [esp + 0x18], 0x9e3779b1
mov dword [esp + 0x1c], edx
add ecx, eax
mov eax, dword [esp + 0x18]
mul ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], edx
add dword [esp + 0x3c], ecx
cmp ebp, eax
jb 0x1029fb00
mov ecx, dword [esp + 0x5c]
lea eax, [ecx + 1]
cmp dword [esp + 0x48], eax
mov eax, 0x20
cmovae eax, dword [esp + 0x90]
lea ebp, [ecx + eax]
imul eax, esi, 0xdef35b01
imul ecx, edi, 0xf796ca9
add ecx, eax
mov eax, 0xf796ca9
mul esi
add edx, ecx
mov esi, eax
shld esi, edx, 0x1f
mov edi, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x48], esi
shld edi, eax, 0x1f
mov esi, dword [esp + 0x20]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x24]
mov eax, esi
shld esi, edi, 1
shld edi, eax, 1
mov eax, dword [esp + 0x28]
mov ecx, eax
shld eax, edx, 7
shld edx, ecx, 7
add esi, eax
mov eax, dword [esp + 0x30]
adc edi, edx
mov edx, dword [esp + 0x34]
mov ecx, eax
shld eax, edx, 0xc
shld edx, ecx, 0xc
add eax, esi
mov esi, dword [esp + 0x38]
adc edx, edi
mov edi, dword [esp + 0x3c]
mov ecx, esi
shld esi, edi, 0x12
shld edi, ecx, 0x12
add esi, eax
adc edi, edx
mov edx, dword [esp + 0x4c]
imul eax, dword [esp + 0x48], 0x9e3779b1
imul ecx, edx, 0x85ebca87
add ecx, eax
mov eax, dword [esp + 0x48]
mul ebx
add edx, ecx
xor esi, eax
xor edi, edx
imul eax, esi, 0x9e3779b1
imul ecx, edi, 0x85ebca87
add ecx, eax
mov eax, esi
mul ebx
mov edi, edx
mov edx, dword [esp + 0xc]
mov esi, eax
add edi, ecx
imul eax, dword [esp + 8], 0xdef35b01
imul ecx, edx, 0xf796ca9
add ecx, eax
mov eax, 0xf796ca9
mul dword [esp + 8]
add edx, ecx
mov ecx, eax
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
add esi, 0xc2b2ae63
adc edi, 0x85ebca77
mov dword [esp + 8], eax
imul ecx, edx, 0x85ebca87
mov eax, dword [esp + 8]
imul edx, dword [esp + 8], 0x9e3779b1
add ecx, edx
mul ebx
add edx, ecx
xor esi, eax
xor edi, edx
imul eax, esi, 0x9e3779b1
imul ecx, edi, 0x85ebca87
add ecx, eax
mov eax, esi
mul ebx
mov edi, edx
mov edx, dword [esp + 0x14]
mov esi, eax
add edi, ecx
imul eax, dword [esp + 0x10], 0xdef35b01
imul ecx, edx, 0xf796ca9
add ecx, eax
mov eax, 0xf796ca9
mul dword [esp + 0x10]
add edx, ecx
mov ecx, eax
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
add esi, 0xc2b2ae63
adc edi, 0x85ebca77
mov dword [esp + 8], eax
imul ecx, edx, 0x85ebca87
mov eax, dword [esp + 8]
imul edx, dword [esp + 8], 0x9e3779b1
add ecx, edx
mul ebx
add edx, ecx
xor esi, eax
xor edi, edx
imul eax, esi, 0x9e3779b1
imul ecx, edi, 0x85ebca87
add ecx, eax
mov eax, esi
mul ebx
mov edi, edx
mov edx, dword [esp + 0x1c]
mov esi, eax
add edi, ecx
imul eax, dword [esp + 0x18], 0xdef35b01
imul ecx, edx, 0xf796ca9
add ecx, eax
mov eax, 0xf796ca9
mul dword [esp + 0x18]
add edx, ecx
mov ecx, eax
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
add esi, 0xc2b2ae63
adc edi, 0x85ebca77
mov dword [esp + 8], eax
imul ecx, edx, 0x85ebca87
mov dword [esp + 0xc], edx
imul edx, dword [esp + 8], 0x9e3779b1
mov eax, dword [esp + 8]
add ecx, edx
mul ebx
add edx, ecx
xor esi, eax
xor edi, edx
imul eax, esi, 0x9e3779b1
imul ecx, edi, 0x85ebca87
add ecx, eax
mov eax, esi
mul ebx
mov esi, eax
mov edi, edx
add edi, ecx
add esi, 0xc2b2ae63
adc edi, 0x85ebca77
mov eax, dword [esp + 0x6c]
add esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
adc edi, dword [esp + 0x74]
test eax, eax
je 0x102a00b4
imul eax, dword [ebp], 0xc2b2ae3d
imul ecx, dword [ebp + 4], 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp]
add edx, ecx
mov ecx, eax
shld eax, edx, 0x1f
shld edx, ecx, 0x1f
mov ecx, 0x85ebca87
imul ebx, edx, 0x85ebca87
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], edx
imul edx, dword [esp + 8], 0x9e3779b1
add ebx, edx
mul ecx
xor eax, esi
add edx, ebx
xor edx, edi
mov ebx, eax
shld eax, edx, 0x1b
shld edx, ebx, 0x1b
imul ebx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ebx, edx
mul ecx
add edx, ebx
add eax, 0xc2b2ae63
adc edx, 0x85ebca77
cmp dword [esp + 0x7c], 7
mov esi, eax
mov edi, edx
jbe 0x102a00a4
imul eax, dword [ebp + 8], 0xc2b2ae3d
imul ebx, dword [ebp + 0xc], 0x27d4eb4f
add ebx, eax
mov eax, 0x27d4eb4f
mul dword [ebp + 8]
add edx, ebx
mov ebx, eax
shld eax, edx, 0x1f
shld edx, ebx, 0x1f
imul ebx, edx, 0x85ebca87
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], edx
imul edx, dword [esp + 8], 0x9e3779b1
add ebx, edx
mul ecx
xor eax, esi
add edx, ebx
xor edx, edi
mov ebx, eax
shld eax, edx, 0x1b
shld edx, ebx, 0x1b
imul ebx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ebx, edx
mul ecx
add edx, ebx
add eax, 0xc2b2ae63
adc edx, 0x85ebca77
cmp dword [esp + 0x8c], 7
mov esi, eax
mov edi, edx
jbe 0x102a00a4
imul eax, dword [ebp + 0x10], 0xc2b2ae3d
imul ebx, dword [ebp + 0x14], 0x27d4eb4f
add ebx, eax
mov eax, 0x27d4eb4f
mul dword [ebp + 0x10]
add edx, ebx
mov ebx, eax
shld eax, edx, 0x1f
shld edx, ebx, 0x1f
imul ebx, edx, 0x85ebca87
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], edx
imul edx, dword [esp + 8], 0x9e3779b1
add ebx, edx
mul ecx
xor eax, esi
add edx, ebx
xor edx, edi
mov ebx, eax
shld eax, edx, 0x1b
shld edx, ebx, 0x1b
imul ebx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ebx, edx
mul ecx
add edx, ebx
add eax, 0xc2b2ae63
adc edx, 0x85ebca77
cmp dword [esp + 0x94], 7
mov esi, eax
mov edi, edx
jbe 0x102a00a4
imul eax, dword [ebp + 0x18], 0xc2b2ae3d
imul ebx, dword [ebp + 0x1c], 0x27d4eb4f
add ebx, eax
mov eax, 0x27d4eb4f
mul dword [ebp + 0x18]
add edx, ebx
mov ebx, eax
shld eax, edx, 0x1f
shld edx, ebx, 0x1f
imul ebx, edx, 0x85ebca87
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], edx
imul edx, dword [esp + 8], 0x9e3779b1
add ebx, edx
mul ecx
xor eax, esi
add edx, ebx
xor edx, edi
mov ebx, eax
shld eax, edx, 0x1b
shld edx, ebx, 0x1b
imul ebx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ebx, edx
mul ecx
add edx, ebx
add eax, 0xc2b2ae63
adc edx, 0x85ebca77
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x60]
add ebp, eax
and ecx, 7
cmp ecx, 3
jbe 0x102a0106
imul ebx, dword [ebp], 0x9e3779b1
mov eax, 0x85ebca87
add ebp, 4
mul dword [ebp - 4]
xor eax, esi
add edx, ebx
xor edx, edi
mov ebx, eax
shld eax, edx, 0x17
shld edx, ebx, 0x17
imul ebx, edx, 0x27d4eb4f
mov esi, eax
imul edx, eax, 0xc2b2ae3d
mov eax, 0x27d4eb4f
add ebx, edx
mul esi
add edx, ebx
add eax, 0x9e3779f9
adc edx, 0x165667b1
mov esi, eax
sub ecx, 4
mov edi, edx
test ecx, ecx
je 0x102a01cc
movzx eax, byte [ebp]
mov edx, 0x165667c5
imul ebx, eax, 0x27d4eb2f
mul edx
xor eax, esi
add edx, ebx
xor edx, edi
mov ebx, eax
mov edi, 0x85ebca87
shld eax, edx, 0xb
shld edx, ebx, 0xb
imul ebx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ebx, edx
mul edi
mov edi, edx
mov esi, eax
add edi, ebx
cmp ecx, 1
je 0x102a01cc
movzx eax, byte [ebp + 1]
mov edx, 0x165667c5
imul ebx, eax, 0x27d4eb2f
mul edx
xor eax, esi
add edx, ebx
xor edx, edi
mov ebx, eax
mov edi, 0x85ebca87
shld eax, edx, 0xb
shld edx, ebx, 0xb
imul ebx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ebx, edx
mul edi
mov edi, edx
mov esi, eax
add edi, ebx
cmp ecx, 2
je 0x102a01cc
movzx eax, byte [ebp + 2]
mov edx, 0x165667c5
imul ecx, eax, 0x27d4eb2f
mul edx
xor eax, esi
add edx, ecx
xor edx, edi
mov ecx, eax
mov edi, 0x85ebca87
shld eax, edx, 0xb
shld edx, ecx, 0xb
imul ecx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ecx, edx
mul edi
mov edi, edx
mov esi, eax
add edi, ecx
mov eax, edi
xor edx, edx
mov ebp, dword [esp + 0x64]
add dword [esp + 0x44], 4
shr eax, 1
xor edx, edi
xor eax, esi
imul ecx, edx, 0x27d4eb4f
imul edx, eax, 0xc2b2ae3d
mov edi, eax
mov eax, 0x27d4eb4f
add ecx, edx
mul edi
mov edi, dword [esp + 0xdc]
add edx, ecx
mov ecx, eax
mov ebx, edx
shrd ecx, edx, 0x1d
shr ebx, 0x1d
xor eax, ecx
xor edx, ebx
mov ebx, 0x9e3779f9
imul ecx, edx, 0x9e3779f9
imul edx, eax, 0x165667b1
add ecx, edx
mul ebx
xor ebx, ebx
add edx, ecx
mov ecx, dword [edi + 8]
mov edi, dword [esp + 0xd0]
xor eax, edx
xor edx, ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov esi, dword [edi + 0x20]
mov dword [esp + 0xc], edx
and ebx, eax
mov edx, dword [esp + 0xc]
add esi, ebx
shl ebx, cl
movzx edi, byte [esi]
mov eax, edi
add ebx, edi
mov edi, dword [esp + 0xd0]
add eax, 1
mov edi, dword [edi + 0x18]
lea ebx, [edi + ebx*8]
mov edi, dword [esp + 0x5c]
mov dword [ebx + 4], edx
mov edx, 1
shl edx, cl
sub edi, ebp
sub edx, 1
mov dword [ebx], edi
and edx, eax
mov eax, dword [esp + 0x44]
mov byte [esi], dl
cmp dword [esp + 0x58], eax
jne 0x1029fa7b
mov ebx, dword [esp + 0x88]
add dword [esp + 0x50], ebx
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0xd8]
jb 0x1029f9e8
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, ecx
mov esi, 0x165667c5
mov edi, 0x27d4eb2f
jmp 0x1029fe98