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

Disassembly:
push 0xffffffffffffffff
push 0x2af3fb3
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x2b197a0]
xor eax, esp
push eax
lea eax, [esp + 0xbc]
mov dword fs:[0], eax
mov esi, ecx
add esi, 4
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x74], esi
call fcn.02a877b0
mov esi, dword [esp + 0xcc]
add esi, 4
mov dword [esp + 0x70], esi
call fcn.02a877b0
lea eax, [esp + 0x3c]
push eax
call fcn.02a34560
lea ecx, [esp + 0x3c]
mov dword [esp + 0xc4], edi
call fcn.02a7f5b0
lea ecx, [esp + 0x24]
push ecx
call fcn.02a34560
mov byte [esp + 0xc4], 1
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
sub edx, ecx
mov eax, 0x51eb851f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
xor esi, esi
add eax, edx
je 0x2a7e7f0
xor ebp, ebp
mov dword [esp + 0x18], ebp
cmp esi, eax
jb 0x2a7e556
call fcn.02a9d484
mov ecx, dword [esp + 0x48]
cmp dword [ecx + ebp + 0x18], edi
jle 0x2a7e7c6
xor ebx, ebx
mov dword [esp + 0x20], edi
jmp 0x2a7e570
mov edx, dword [esp + 0x4c]
sub edx, ecx
mov eax, 0x51eb851f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7e594
call fcn.02a9d484
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + ebp + 0x70]
sub edx, dword [ecx + ebp + 0x6c]
sar edx, 6
cmp ebx, edx
jae 0x2a7e7c6
mov edx, dword [esp + 0x4c]
sub edx, ecx
mov eax, 0x51eb851f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7e5cb
call fcn.02a9d484
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + ebp + 0x70]
sub edx, dword [ecx + ebp + 0x6c]
lea edi, [ecx + ebp + 0x6c]
sar edx, 6
cmp ebx, edx
jb 0x2a7e5e7
call fcn.02a9d484
mov ecx, dword [esp + 0x48]
mov eax, dword [edi]
mov edx, dword [esp + 0x20]
cmp dword [edx + eax + 0x18], 0
jle 0x2a7e697
lea eax, [esp + 0x78]
push eax
mov ecx, 0x2b0e088
call fcn.02a84260
mov byte [esp + 0xc4], 2
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
or dword [esp + 0x1c], 1
sub ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jb 0x2a7e63c
call fcn.02a9d484
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi + 0x70]
sub edx, dword [eax + edi + 0x6c]
lea ebp, [eax + edi + 0x6c]
sar edx, 6
cmp ebx, edx
jb 0x2a7e658
call fcn.02a9d484
mov eax, dword [ebp]
add eax, dword [esp + 0x20]
cmp dword [esp + 0x94], 8
lea ecx, [eax + 4]
mov eax, dword [esp + 0x80]
jae 0x2a7e67a
lea eax, [esp + 0x80]
mov edi, dword [esp + 0x90]
push eax
mov eax, dword [ecx + 0x14]
call fcn.02a3c9e0
mov ecx, dword [esp + 0x48]
mov byte [esp + 0x17], 1
test eax, eax
jne 0x2a7e69c
mov byte [esp + 0x17], 0
mov edi, 1
mov dword [esp + 0xc4], edi
test byte [esp + 0x1c], 1
je 0x2a7e6e0
and dword [esp + 0x1c], 0xfffffffe
sub dword [0x2b1cc40], edi
cmp dword [esp + 0x94], 8
mov dword [esp + 0x78], 0x2b0e2f8
jb 0x2a7e6e0
mov eax, dword [esp + 0x80]
push eax
call fcn.02a9b828
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp byte [esp + 0x17], 0
jne 0x2a7e6f9
add dword [esp + 0x20], 0x40
mov ebp, dword [esp + 0x18]
add ebx, edi
xor edi, edi
jmp 0x2a7e570
mov edx, dword [esp + 0x4c]
sub edx, ecx
mov eax, 0x51eb851f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7e71d
call fcn.02a9d484
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0x18]
add ecx, ebp
push ecx
lea edi, [esp + 0x28]
call fcn.02a81660
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x48]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7e74f
call fcn.02a9d484
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + ebp + 0x70]
sub edx, dword [ecx + ebp + 0x6c]
lea edi, [ecx + ebp + 0x60]
sar edx, 6
cmp ebx, edx
jb 0x2a7e76b
call fcn.02a9d484
mov ecx, dword [esp + 0x74]
shl ebx, 6
add ebx, dword [edi + 0xc]
push 0xffffffffffffffff
mov eax, ebx
push 0
add eax, 4
push eax
call fcn.02a32510
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x48]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7e7a6
call fcn.02a9d484
mov ecx, dword [esp + 0x48]
push 0xffffffffffffffff
lea edx, [ecx + ebp + 4]
mov ecx, dword [esp + 0x74]
push 0
push edx
call fcn.02a32510
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0x18]
xor edi, edi
mov edx, dword [esp + 0x4c]
sub edx, ecx
mov eax, 0x51eb851f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc esi
add ebp, 0xc8
add eax, edx
mov dword [esp + 0x18], ebp
cmp esi, eax
jb 0x2a7e556
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
mov edx, ebp
sub edx, ebx
mov eax, 0x51eb851f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x2a7e88b
cmp ebx, edi
je 0x2a7e83c
mov esi, ebx
cmp ebx, ebp
je 0x2a7e833
lea esp, [esp]
call fcn.02a7ff90
add esi, 0xc8
cmp esi, ebp
jne 0x2a7e820
mov ebx, dword [esp + 0x30]
push ebx
call fcn.02a9b828
add esp, 4
mov eax, dword [esp + 0x24]
push eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
call fcn.02a9b828
mov esi, dword [esp + 0x4c]
add esp, 4
cmp esi, edi
je 0x2a7e881
mov ebx, dword [esp + 0x4c]
cmp esi, ebx
je 0x2a7e878
call fcn.02a7ff90
add esi, 0xc8
cmp esi, ebx
jne 0x2a7e865
mov esi, dword [esp + 0x48]
push esi
call fcn.02a9b828
add esp, 4
mov ecx, dword [esp + 0x3c]
push ecx
jmp 0x2a7f576
cmp eax, edi
jne 0x2a7ea22
mov esi, dword [esp + 0x4c]
mov edx, esi
sub edx, ecx
mov eax, 0x51eb851f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
je 0x2a7e8f7
xor ebp, ebp
xor ebx, ebx
cmp edi, eax
jb 0x2a7e8c5
call fcn.02a9d484
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
cmp dword [ebx + ecx + 0x18], ebp
mov eax, 0x51eb851f
jg 0x2a7e964
mov edx, esi
sub edx, ecx
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
add ebx, 0xc8
cmp edi, eax
jb 0x2a7e8c5
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
xor edi, edi
cmp ebx, edi
je 0x2a7e91f
mov esi, ebx
cmp ebx, ebp
je 0x2a7e916
call fcn.02a7ff90
add esi, 0xc8
cmp esi, ebp
jne 0x2a7e903
mov ebx, dword [esp + 0x30]
push ebx
call fcn.02a9b828
add esp, 4
mov ecx, dword [esp + 0x24]
push ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
call fcn.02a9b828
mov esi, dword [esp + 0x4c]
add esp, 4
cmp esi, edi
je 0x2a7f571
mov ebx, dword [esp + 0x4c]
cmp esi, ebx
je 0x2a7f568
call fcn.02a7ff90
add esi, 0xc8
cmp esi, ebx
jne 0x2a7e950
jmp 0x2a7f564
sub esi, ecx
imul esi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x2a7e97f
call fcn.02a9d484
mov ecx, dword [esp + 0x48]
imul edi, edi, 0xc8
push 0xffffffffffffffff
lea ecx, [edi + ecx + 4]
push ebp
push ecx
mov ecx, dword [esp + 0x7c]
call fcn.02a32510
mov esi, dword [esp + 0x30]
cmp esi, ebp
je 0x2a7e9c2
mov edi, dword [esp + 0x34]
cmp esi, edi
je 0x2a7e9b9
call fcn.02a7ff90
add esi, 0xc8
cmp esi, edi
jne 0x2a7e9a6
mov esi, dword [esp + 0x30]
push esi
call fcn.02a9b828
add esp, 4
mov edx, dword [esp + 0x24]
push edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
call fcn.02a9b828
mov esi, dword [esp + 0x4c]
add esp, 4
cmp esi, ebp
je 0x2a7ea0c
mov edi, dword [esp + 0x4c]
cmp esi, edi
je 0x2a7ea03
jmp 0x2a7e9f0
call fcn.02a7ff90
add esi, 0xc8
cmp esi, edi
jne 0x2a7e9f0
mov esi, dword [esp + 0x48]
push esi
call fcn.02a9b828
add esp, 4
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
push eax
jmp 0x2a7f582
cmp eax, 1
jbe 0x2a7f502
lea eax, [esp + 0x58]
push eax
call fcn.02a34560
mov byte [esp + 0xc4], 3
mov ebp, dword [esp + 0x34]
mov ecx, ebp
sub ecx, dword [esp + 0x30]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
xor ebx, ebx
add ecx, edx
je 0x2a7edad
xor esi, esi
mov dword [esp + 0x54], esi
lea edx, [esp + 0x98]
push edx
mov ecx, 0x2b0e098
call fcn.02a84260
mov byte [esp + 0xc4], 4
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x2a7eaa2
call fcn.02a9d484
mov edx, dword [esp + 0x30]
push 0
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esi + edx + 0x40]
call fcn.02a85290
mov byte [esp + 0xc4], 3
dec dword [0x2b1cc40]
cmp dword [esp + 0xb4], 8
mov edi, eax
mov dword [esp + 0x98], 0x2b0e2f8
jb 0x2a7eaee
mov eax, dword [esp + 0xa0]
push eax
call fcn.02a9b828
add esp, 4
test edi, edi
jge 0x2a7ed7f
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x2a7eb18
call fcn.02a9d484
mov edx, dword [esp + 0x30]
cmp dword [esi + edx + 0x18], 0
jle 0x2a7ed7f
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], ebp
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
sub ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x2a7eb59
call fcn.02a9d484
mov edi, dword [esp + 0x30]
mov ecx, dword [esi + edi + 0x70]
sub ecx, dword [esi + edi + 0x6c]
sar ecx, 6
cmp ebp, ecx
jae 0x2a7ed7f
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x2a7eb8e
call fcn.02a9d484
mov ecx, dword [esp + 0x30]
mov edx, dword [esi + ecx + 0x70]
sub edx, dword [esi + ecx + 0x6c]
lea edi, [esi + ecx + 0x60]
sar edx, 6
cmp ebp, edx
jb 0x2a7ebaa
call fcn.02a9d484
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
cmp dword [ecx + eax + 0x18], 0
jle 0x2a7ec55
lea edx, [esp + 0x78]
push edx
mov ecx, 0x2b0e088
call fcn.02a84260
mov byte [esp + 0xc4], 5
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
or dword [esp + 0x1c], 2
sub ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x2a7ec00
call fcn.02a9d484
mov edi, dword [esp + 0x30]
mov ecx, dword [esi + edi + 0x70]
sub ecx, dword [esi + edi + 0x6c]
lea ebp, [esi + edi + 0x6c]
sar ecx, 6
cmp dword [esp + 0x18], ecx
jb 0x2a7ec1a
call fcn.02a9d484
mov eax, dword [ebp]
add eax, dword [esp + 0x20]
cmp dword [esp + 0x94], 8
lea ecx, [eax + 4]
mov eax, dword [esp + 0x80]
jae 0x2a7ec3c
lea eax, [esp + 0x80]
mov edi, dword [esp + 0x90]
push eax
mov eax, dword [ecx + 0x14]
call fcn.02a3c9e0
mov byte [esp + 0x17], 1
test eax, eax
jne 0x2a7ec5a
mov byte [esp + 0x17], 0
mov dword [esp + 0xc4], 3
test byte [esp + 0x1c], 2
je 0x2a7ec99
and dword [esp + 0x1c], 0xfffffffd
dec dword [0x2b1cc40]
cmp dword [esp + 0x94], 8
mov dword [esp + 0x78], 0x2b0e2f8
jb 0x2a7ec99
mov edx, dword [esp + 0x80]
push edx
call fcn.02a9b828
add esp, 4
cmp byte [esp + 0x17], 0
jne 0x2a7ecb2
inc dword [esp + 0x18]
add dword [esp + 0x20], 0x40
mov ebp, dword [esp + 0x18]
jmp 0x2a7eb31
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x2a7ecd4
call fcn.02a9d484
mov ecx, dword [esp + 0x30]
add esi, ecx
push esi
lea edi, [esp + 0x5c]
call fcn.02a81660
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x2a7ed06
call fcn.02a9d484
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + ebp + 0x70]
sub edx, dword [ecx + ebp + 0x6c]
mov edi, dword [esp + 0x18]
lea esi, [ecx + ebp + 0x60]
sar edx, 6
cmp edi, edx
jb 0x2a7ed2a
call fcn.02a9d484
mov ecx, dword [esp + 0x74]
shl edi, 6
add edi, dword [esi + 0xc]
push 0xffffffffffffffff
mov eax, edi
push 0
add eax, 4
push eax
call fcn.02a32510
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x2a7ed65
call fcn.02a9d484
mov ecx, dword [esp + 0x30]
push 0xffffffffffffffff
lea edx, [ecx + ebp + 4]
mov ecx, dword [esp + 0x74]
push 0
push edx
call fcn.02a32510
mov esi, dword [esp + 0x54]
mov ebp, dword [esp + 0x34]
mov ecx, ebp
sub ecx, dword [esp + 0x30]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc ebx
add esi, 0xc8
add eax, edx
mov dword [esp + 0x54], esi
cmp ebx, eax
jb 0x2a7ea66
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov ecx, ebx
sub ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x2a7eeb4
xor esi, esi
cmp edi, esi
je 0x2a7edfe
mov esi, edi
cmp edi, ebx
je 0x2a7edf3
nop
call fcn.02a7ff90
add esi, 0xc8
cmp esi, ebx
jne 0x2a7ede0
mov edi, dword [esp + 0x64]
push edi
call fcn.02a9b828
add esp, 4
xor esi, esi
mov ecx, dword [esp + 0x58]
push ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
call fcn.02a9b828
mov eax, dword [esp + 0x34]
add esp, 4
cmp eax, esi
je 0x2a7ee4e
mov edi, dword [esp + 0x34]
mov esi, eax
cmp eax, edi
je 0x2a7ee43
lea esp, [esp]
call fcn.02a7ff90
add esi, 0xc8
cmp esi, edi
jne 0x2a7ee30
mov eax, dword [esp + 0x30]
push eax
call fcn.02a9b828
add esp, 4
xor esi, esi
mov edx, dword [esp + 0x24]
push edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
call fcn.02a9b828
mov eax, dword [esp + 0x4c]
add esp, 4
cmp eax, esi
je 0x2a7ee9e
mov edi, dword [esp + 0x4c]
mov esi, eax
cmp eax, edi
je 0x2a7ee93
lea esp, [esp]
call fcn.02a7ff90
add esi, 0xc8
cmp esi, edi
jne 0x2a7ee80
mov eax, dword [esp + 0x48]
push eax
call fcn.02a9b828
add esp, 4
xor esi, esi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
push eax
jmp 0x2a7f582
test eax, eax
jne 0x2a7efb1
mov esi, dword [esp + 0x30]
mov ecx, ebp
sub ecx, esi
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x2a7eee4
call fcn.02a9d484
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov edx, dword [esi + 0x70]
sub edx, dword [esi + 0x6c]
sar edx, 6
test edx, edx
jbe 0x2a7ef41
sub ebp, esi
mov ecx, ebp
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x2a7ef11
call fcn.02a9d484
mov esi, dword [esp + 0x30]
mov ecx, dword [esi + 0x70]
sub ecx, dword [esi + 0x6c]
lea edi, [esi + 0x6c]
sar ecx, 6
test ecx, ecx
ja 0x2a7ef26
call fcn.02a9d484
mov edx, dword [edi]
mov ecx, dword [esp + 0x74]
push 0xffffffffffffffff
push 0
add edx, 4
push edx
call fcn.02a32510
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
sub ebp, esi
mov ecx, ebp
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x2a7ef61
call fcn.02a9d484
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x70]
push 0xffffffffffffffff
push 0
add esi, 4
push esi
call fcn.02a32510
lea ebx, [esp + 0x58]
call fcn.02a81cc0
mov ecx, dword [esp + 0x58]
push ecx
call fcn.02a9b828
add esp, 4
lea ebx, [esp + 0x24]
call fcn.02a81cc0
mov edx, dword [esp + 0x24]
push edx
call fcn.02a9b828
add esp, 4
lea ebx, [esp + 0x3c]
call fcn.02a81cc0
mov eax, dword [esp + 0x3c]
push eax
jmp 0x2a7f582
cmp eax, 1
jbe 0x2a7f4e2
lea ecx, [esp + 0x78]
push ecx
call fcn.02a34560
mov byte [esp + 0xc4], 6
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
mov ecx, edi
sub ecx, ebp
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
xor esi, esi
add eax, edx
je 0x2a7f344
xor ebx, ebx
mov dword [esp + 0x54], ebx
lea ecx, [esp + 0x98]
push ecx
mov ecx, 0x2b0e0a8
call fcn.02a84260
mov byte [esp + 0xc4], 7
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x64]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7f033
call fcn.02a9d484
mov edx, dword [esp + 0x64]
push 0
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [ebx + edx + 0x40]
call fcn.02a85290
mov byte [esp + 0xc4], 6
dec dword [0x2b1cc40]
cmp dword [esp + 0xb4], 8
mov edi, eax
mov dword [esp + 0x98], 0x2b0e2f8
jb 0x2a7f07f
mov eax, dword [esp + 0xa0]
push eax
call fcn.02a9b828
add esp, 4
test edi, edi
jge 0x2a7f314
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x64]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jb 0x2a7f0a9
call fcn.02a9d484
mov edx, dword [esp + 0x64]
cmp dword [ebx + edx + 0x18], 0
jle 0x2a7f314
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], ebp
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
sub ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7f0ea
call fcn.02a9d484
mov edi, dword [esp + 0x64]
mov ecx, dword [ebx + edi + 0x70]
sub ecx, dword [ebx + edi + 0x6c]
sar ecx, 6
cmp ebp, ecx
jae 0x2a7f314
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x64]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7f11f
call fcn.02a9d484
mov ecx, dword [esp + 0x64]
mov edx, dword [ebx + ecx + 0x70]
sub edx, dword [ebx + ecx + 0x6c]
lea edi, [ebx + ecx + 0x60]
sar edx, 6
cmp ebp, edx
jb 0x2a7f13b
call fcn.02a9d484
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
cmp dword [ecx + eax + 0x18], 0
jle 0x2a7f1e8
lea edx, [esp + 0x98]
push edx
mov ecx, 0x2b0e088
call fcn.02a84260
mov byte [esp + 0xc4], 8
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
or dword [esp + 0x1c], 4
sub ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7f194
call fcn.02a9d484
mov edi, dword [esp + 0x64]
mov ecx, dword [ebx + edi + 0x70]
sub ecx, dword [ebx + edi + 0x6c]
lea ebp, [ebx + edi + 0x6c]
sar ecx, 6
cmp dword [esp + 0x18], ecx
jb 0x2a7f1ae
call fcn.02a9d484
mov eax, dword [ebp]
add eax, dword [esp + 0x20]
cmp dword [esp + 0xb4], 8
lea ecx, [eax + 4]
mov eax, dword [esp + 0xa0]
jae 0x2a7f1d0
lea eax, [esp + 0xa0]
mov edi, dword [esp + 0xb0]
push eax
mov eax, dword [ecx + 0x14]
call fcn.02a3c9e0
test eax, eax
je 0x2a7f1e8
mov bl, 1
jmp 0x2a7f1ea
xor bl, bl
mov dword [esp + 0xc4], 6
test byte [esp + 0x1c], 4
je 0x2a7f22c
and dword [esp + 0x1c], 0xfffffffb
dec dword [0x2b1cc40]
cmp dword [esp + 0xb4], 8
mov dword [esp + 0x98], 0x2b0e2f8
jb 0x2a7f22c
mov edx, dword [esp + 0xa0]
push edx
call fcn.02a9b828
add esp, 4
test bl, bl
jne 0x2a7f246
inc dword [esp + 0x18]
add dword [esp + 0x20], 0x40
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x18]
jmp 0x2a7f0c2
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x64]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7f268
call fcn.02a9d484
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x54]
lea edx, [ebx + ecx]
push edx
lea edi, [esp + 0x7c]
call fcn.02a81660
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
sub ecx, ebp
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x2a7f2a5
call fcn.02a9d484
mov ebp, dword [esp + 0x64]
mov ecx, dword [ebx + ebp + 0x70]
sub ecx, dword [ebx + ebp + 0x6c]
lea edi, [ebx + ebp + 0x6c]
mov ebp, dword [esp + 0x18]
sar ecx, 6
cmp ebp, ecx
jb 0x2a7f2c1
call fcn.02a9d484
mov edx, dword [edi]
mov ecx, dword [esp + 0x74]
push 0xffffffffffffffff
shl ebp, 6
push 0
lea eax, [edx + ebp + 4]
push eax
call fcn.02a32510
mov ecx, dword [esp + 0x68]
sub ecx, dword [esp + 0x64]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jb 0x2a7f2fa
call fcn.02a9d484
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x70]
push 0xffffffffffffffff
push 0
lea eax, [ebx + edx + 4]
push eax
call fcn.02a32510
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
mov ecx, edi
sub ecx, ebp
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
inc esi
add ebx, 0xc8
add ecx, edx
mov dword [esp + 0x54], ebx
cmp esi, ecx
jb 0x2a7eff7
mov ecx, dword [esp + 0x88]
sub ecx, dword [esp + 0x84]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x2a7f3bd
lea ebx, [esp + 0x78]
call fcn.02a81cc0
mov edx, dword [esp + 0x78]
push edx
call fcn.02a9b828
add esp, 4
lea ebx, [esp + 0x58]
call fcn.02a81cc0
mov eax, dword [esp + 0x58]
push eax
call fcn.02a9b828
add esp, 4
lea ebx, [esp + 0x24]
call fcn.02a81cc0
mov ecx, dword [esp + 0x24]
push ecx
call fcn.02a9b828
add esp, 4
lea ebx, [esp + 0x3c]
call fcn.02a81cc0
mov edx, dword [esp + 0x3c]
push edx
jmp 0x2a7f582
test eax, eax
jne 0x2a7f4cc
mov ecx, edi
sub ecx, ebp
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x2a7f3e9
call fcn.02a9d484
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
mov ecx, dword [ebp + 0x70]
sub ecx, dword [ebp + 0x6c]
sar ecx, 6
test ecx, ecx
jbe 0x2a7f446
sub edi, ebp
mov ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x2a7f416
call fcn.02a9d484
mov ebp, dword [esp + 0x64]
mov ecx, dword [ebp + 0x70]
sub ecx, dword [ebp + 0x6c]
lea esi, [ebp + 0x6c]
sar ecx, 6
test ecx, ecx
ja 0x2a7f42b
call fcn.02a9d484
mov edx, dword [esi]
mov ecx, dword [esp + 0x74]
push 0xffffffffffffffff
push 0
add edx, 4
push edx
call fcn.02a32510
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
sub edi, ebp
mov ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x2a7f466
call fcn.02a9d484
mov ebp, dword [esp + 0x64]
mov ecx, dword [esp + 0x70]
push 0xffffffffffffffff
push 0
add ebp, 4
push ebp
call fcn.02a32510
lea ebx, [esp + 0x78]
call fcn.02a81cc0
mov ecx, dword [esp + 0x78]
push ecx
call fcn.02a9b828
add esp, 4
lea ebx, [esp + 0x58]
call fcn.02a81cc0
mov edx, dword [esp + 0x58]
push edx
call fcn.02a9b828
add esp, 4
lea ebx, [esp + 0x24]
call fcn.02a81cc0
mov eax, dword [esp + 0x24]
push eax
call fcn.02a9b828
add esp, 4
lea ebx, [esp + 0x3c]
call fcn.02a81cc0
mov ecx, dword [esp + 0x3c]
push ecx
jmp 0x2a7f582
lea ebx, [esp + 0x78]
call fcn.02a81cc0
mov edx, dword [esp + 0x78]
push edx
call fcn.02a9b828
add esp, 4
lea ebx, [esp + 0x58]
call fcn.02a81cc0
mov eax, dword [esp + 0x58]
push eax
call fcn.02a9b828
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
add esp, 4
xor edi, edi
cmp ebx, edi
je 0x2a7f52c
mov esi, ebx
cmp ebx, ebp
je 0x2a7f523
lea esp, [esp]
call fcn.02a7ff90
add esi, 0xc8
cmp esi, ebp
jne 0x2a7f510
mov ebx, dword [esp + 0x30]
push ebx
call fcn.02a9b828
add esp, 4
mov ecx, dword [esp + 0x24]
push ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
call fcn.02a9b828
mov esi, dword [esp + 0x4c]
add esp, 4
cmp esi, edi
je 0x2a7f571
mov ebx, dword [esp + 0x4c]
cmp esi, ebx
je 0x2a7f568
call fcn.02a7ff90
add esi, 0xc8
cmp esi, ebx
jne 0x2a7f555
mov esi, dword [esp + 0x48]
push esi
call fcn.02a9b828
add esp, 4
mov edx, dword [esp + 0x3c]
push edx
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], edi
call fcn.02a9b828
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0xbc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret