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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1039d329
mov eax, dword fs:[0]
push eax
sub esp, 0xc4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x105623f8]
xor eax, esp
push eax
lea eax, [esp + 0xd8]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 0x2b8]
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
cmp eax, ebx
jbe 0x4ab447
cmp eax, 0x1000
jae 0x4ab3af
mov esi, 0x1000
sub esi, eax
push esi
call fcn.0076719b
push esi
mov ebp, eax
push ebx
push ebp
call fcn.0077730f
add esp, 0x10
push esi
push ebp
mov ecx, edi
call fcn.004aafaf
push ebp
call fcn.007773af
add esp, 4
mov eax, dword [edi + 0x274]
cmp eax, ebx
jne 0x4ab3c8
call fcn.00776e71
mov eax, dword [edi + 0x274]
cmp eax, ebx
je 0x4ab3cc
mov eax, dword [eax]
jmp 0x4ab3ce
xor eax, eax
mov ecx, dword [edi + 0x278]
cmp ecx, dword [eax + 0x10]
jb 0x4ab3de
call fcn.00776e71
mov eax, dword [edi + 0x278]
mov dword [eax + 0x78], ebx
mov eax, dword [edi + 0x274]
cmp eax, ebx
jne 0x4ab400
call fcn.00776e71
mov eax, dword [edi + 0x274]
cmp eax, ebx
je 0x4ab404
mov eax, dword [eax]
jmp 0x4ab406
xor eax, eax
mov edx, dword [edi + 0x278]
cmp edx, dword [eax + 0x10]
jb 0x4ab416
call fcn.00776e71
mov ecx, dword [edi + 0x2b8]
mov eax, dword [edi + 0x278]
mov dword [eax + 0x80], ecx
mov dword [eax + 0x84], ebx
mov edx, dword [edi + 0x2b8]
push ebx
push edx
mov ecx, edi
call fcn.004aaecf
add dword [edi + 0x2ac], eax
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x2a4]
mov esi, dword [eax]
mov ebp, dword [edi + 0x28c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebp
mov edi, edi
mov ebx, dword [edi + 0x2a4]
mov eax, dword [edi + 0x28c]
test ebp, ebp
je 0x4ab473
cmp ebp, eax
je 0x4ab478
call fcn.00776e71
cmp esi, ebx
je 0x4ab5d6
test ebp, ebp
jne 0x4ab4ac
call fcn.00776e71
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x4ab495
call fcn.00776e71
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4ab4a8
call fcn.00776e71
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4ab4b1
mov eax, dword [eax]
jmp 0x4ab4b3
mov eax, dword [ebp]
jmp 0x4ab48b
xor eax, eax
mov ecx, dword [esi + 0x10]
cmp ecx, dword [eax + 0x10]
jb 0x4ab4c0
call fcn.00776e71
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x18]
mov dword [edx + 0x78], eax
test ebp, ebp
jne 0x4ab511
call fcn.00776e71
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x4ab4df
call fcn.00776e71
mov ebx, dword [esi + 0x24]
sub ebx, dword [esi + 0x20]
test ebp, ebp
jne 0x4ab516
call fcn.00776e71
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x4ab4fa
call fcn.00776e71
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4ab50d
call fcn.00776e71
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4ab51b
mov eax, dword [eax]
jmp 0x4ab51d
mov eax, dword [ebp]
jmp 0x4ab4d5
mov eax, dword [ebp]
jmp 0x4ab4f0
xor eax, eax
mov ecx, dword [esi + 0x10]
cmp ecx, dword [eax + 0x10]
jb 0x4ab52a
call fcn.00776e71
mov eax, dword [esi + 0x10]
mov dword [eax + 0x80], ebx
mov dword [eax + 0x84], 0
test ebp, ebp
jne 0x4ab5c7
call fcn.00776e71
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x4ab556
call fcn.00776e71
mov ebx, dword [esi + 0x24]
sub ebx, dword [esi + 0x20]
test ebp, ebp
jne 0x4ab5cc
call fcn.00776e71
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x4ab571
call fcn.00776e71
mov edx, dword [esi + 0x24]
sub edx, dword [esi + 0x20]
jne 0x4ab57e
call fcn.00776e71
mov eax, dword [esi + 0x20]
push ebx
push eax
mov ecx, edi
call fcn.004aafaf
test ebp, ebp
jne 0x4ab5d1
call fcn.00776e71
cmp esi, dword [ebp + 0x18]
jne 0x4ab59d
call fcn.00776e71
mov eax, dword [esi + 0x24]
sub eax, dword [esi + 0x20]
push 0
push eax
mov ecx, edi
call fcn.004aaecf
add dword [esp + 0x18], eax
lea ecx, [esp + 0x50]
call fcn.004a735f
mov esi, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
jmp 0x4ab45f
mov eax, dword [ebp]
jmp 0x4ab54c
mov eax, dword [ebp]
jmp 0x4ab567
mov ebp, dword [ebp]
jmp 0x4ab593
mov ecx, dword [edi + 0x254]
sub ecx, dword [edi + 0x250]
test ecx, 0xfffffffc
je 0x4ab675
mov edx, dword [esp + 0x18]
mov dword [edi + 0x48], edx
mov eax, dword [edi + 0x254]
sub eax, dword [edi + 0x250]
xor esi, esi
sar eax, 2
test eax, eax
jbe 0x4ab651
jmp 0x4ab60f
mov ecx, dword [edi + 0x254]
sub ecx, dword [edi + 0x250]
sar ecx, 2
cmp esi, ecx
jb 0x4ab627
call fcn.00776e71
mov edx, dword [edi + 0x250]
mov eax, dword [edx + esi*4]
mov ecx, dword [edi + 8]
push eax
push ecx
call fcn.00442cdf
mov edx, dword [edi + 0x254]
sub edx, dword [edi + 0x250]
inc esi
sar edx, 2
add esp, 8
cmp esi, edx
jb 0x4ab60f
mov eax, dword [edi + 0x254]
sub eax, dword [edi + 0x250]
push 0
sar eax, 2
add eax, eax
add eax, eax
push eax
mov ecx, edi
call fcn.004aaecf
add dword [esp + 0x18], eax
mov dword [edi + 0x4c], eax
mov ecx, dword [edi + 0x26c]
sub ecx, dword [edi + 0x268]
mov eax, 0x78787879
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
mov ecx, dword [edi + 0x26c]
sub ecx, dword [edi + 0x268]
mov eax, 0x78787879
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
shr esi, 2
add eax, edx
mov dword [esp + 0x20], esi
test al, 3
jbe 0x4ab6c1
inc esi
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x18]
lea eax, [esi + ecx]
mov ecx, eax
shr ecx, 7
test al, 0x7f
jbe 0x4ab6d2
inc ecx
mov eax, ecx
shr eax, 7
test cl, 0x7f
jbe 0x4ab6dd
inc eax
mov edx, eax
shr edx, 7
add edx, eax
add ecx, edx
mov dword [esp + 0x4c], ecx
test al, 0x7f
jbe 0x4ab6f3
inc ecx
mov dword [esp + 0x4c], ecx
cmp eax, 0x64
jbe 0x4ab6ff
add ecx, 3
mov dword [esp + 0x4c], ecx
mov dword [edi + 0x38], ecx
cmp ecx, 0x6d
jbe 0x4ab71f
xor edx, edx
lea eax, [ecx - 0x6d]
mov esi, 0x7f
div esi
mov dword [esp + 0x1c], eax
test edx, edx
jbe 0x4ab71f
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
shl ecx, 7
push 0
lea ebp, [edi + 0x22c]
push ecx
mov ecx, ebp
mov dword [edi + 0x54], eax
call fcn.0043a70f
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 0xc], esi
jbe 0x4ab746
call fcn.00776e71
mov ebx, dword [ebp + 0xc]
cmp ebx, dword [ebp + 0x10]
jbe 0x4ab753
call fcn.00776e71
mov eax, ebx
cmp ebx, esi
je 0x4ab76c
lea ebx, [ebx]
mov dword [eax], 0xffffffff
add eax, 4
cmp eax, esi
jne 0x4ab75f
mov eax, dword [esp + 0x18]
xor esi, esi
test eax, eax
jbe 0x4ab875
lea ebx, [eax - 1]
test ebx, ebx
jbe 0x4ab7b3
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
sar ecx, 2
cmp esi, ecx
jae 0x4ab811
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
sar edx, 2
cmp esi, edx
jb 0x4ab7a4
call fcn.00776e71
mov ecx, dword [ebp + 0xc]
lea eax, [esi + 1]
mov dword [ecx + esi*4], eax
mov esi, eax
cmp esi, ebx
jb 0x4ab781
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
sar ecx, 2
cmp esi, ecx
jb 0x4ab858
push 0x22
push 0x1047168c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.0040517f
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x64]
mov dword [esp + 0xe4], 1
call fcn.004c07cf
push 0x104f2130
lea eax, [esp + 0x64]
push eax
call fcn.00776cc8
push 0x22
xor esi, esi
push 0x1047168c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], esi
mov byte [esp + 0x30], 0
call fcn.0040517f
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x64]
mov dword [esp + 0xe4], esi
call fcn.004c07cf
push 0x104f2130
lea eax, [esp + 0x64]
push eax
call fcn.00776cc8
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
sar ecx, 2
cmp esi, ecx
jb 0x4ab86a
call fcn.00776e71
mov edx, dword [ebp + 0xc]
mov dword [edx + esi*4], 0xfffffffe
inc esi
xor ebx, ebx
cmp dword [esp + 0x1c], ebx
jbe 0x4ab8b4
mov edi, edi
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp + 0xc]
sar eax, 2
cmp esi, eax
jae 0x4ab9a4
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
sar ecx, 2
cmp esi, ecx
jb 0x4ab8a2
call fcn.00776e71
mov edx, dword [ebp + 0xc]
mov dword [edx + esi*4], 0xfffffffc
inc ebx
inc esi
cmp ebx, dword [esp + 0x1c]
jb 0x4ab87f
xor ebx, ebx
cmp dword [esp + 0x4c], ebx
jbe 0x4ab8f4
lea ecx, [ecx]
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
sar edx, 2
cmp esi, edx
jae 0x4ab9f1
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp + 0xc]
sar eax, 2
cmp esi, eax
jb 0x4ab8e2
call fcn.00776e71
mov ecx, dword [ebp + 0xc]
mov dword [ecx + esi*4], 0xfffffffd
inc ebx
inc esi
cmp ebx, dword [esp + 0x4c]
jb 0x4ab8bf
cmp dword [esp + 0x20], 0
jbe 0x4abaa7
mov ecx, dword [esp + 0x20]
xor ebx, ebx
add ecx, 0xffffffff
mov dword [esp + 0x48], ecx
je 0x4ab946
nop
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
sar edx, 2
cmp esi, edx
jae 0x4aba3e
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp + 0xc]
sar eax, 2
cmp esi, eax
jb 0x4ab936
call fcn.00776e71
mov ecx, dword [esp + 0x48]
mov edx, dword [ebp + 0xc]
lea eax, [esi + 1]
inc ebx
mov dword [edx + esi*4], eax
mov esi, eax
cmp ebx, ecx
jb 0x4ab90f
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
sar edx, 2
cmp esi, edx
jb 0x4aba8b
push 0x22
push 0x1047168c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.0040517f
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x64]
mov dword [esp + 0xe4], 5
call fcn.004c07cf
push 0x104f2130
lea ecx, [esp + 0x64]
push ecx
call fcn.00776cc8
push 0x22
push 0x1047168c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.0040517f
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x64]
mov dword [esp + 0xe4], 2
call fcn.004c07cf
push 0x104f2130
lea ecx, [esp + 0x64]
push ecx
call fcn.00776cc8
push 0x22
push 0x1047168c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.0040517f
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x64]
mov dword [esp + 0xe4], 3
call fcn.004c07cf
push 0x104f2130
lea eax, [esp + 0x64]
push eax
call fcn.00776cc8
push 0x22
push 0x1047168c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.0040517f
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x64]
mov dword [esp + 0xe4], 4
call fcn.004c07cf
push 0x104f2130
lea ecx, [esp + 0x64]
push ecx
call fcn.00776cc8
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
sar edx, 2
cmp esi, edx
jb 0x4aba9d
call fcn.00776e71
mov eax, dword [ebp + 0xc]
mov dword [eax + esi*4], 0xfffffffe
mov ecx, dword [edi + 0x254]
sub ecx, dword [edi + 0x250]
test ecx, 0xfffffffc
je 0x4abb27
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
mov eax, dword [edi + 0x48]
sar edx, 2
cmp eax, edx
jbe 0x4abb18
push 0x25
push 0x10471664
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.0040517f
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x64]
mov dword [esp + 0xe4], 6
call fcn.004c07cf
push 0x104f2130
lea ecx, [esp + 0x64]
push ecx
call fcn.00776cc8
dec eax
push eax
mov ecx, ebp
call fcn.0052d01f
mov dword [eax], 0xfffffffe
mov eax, dword [edi + 0x2a4]
mov esi, dword [eax]
mov ebx, dword [edi + 0x28c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov edi, edi
mov edx, dword [edi + 0x2a4]
mov eax, dword [edi + 0x28c]
mov dword [esp + 0x5c], edx
test ebx, ebx
je 0x4abb57
cmp ebx, eax
je 0x4abb5c
call fcn.00776e71
cmp esi, dword [esp + 0x5c]
je 0x4abc6b
test ebx, ebx
jne 0x4abb92
call fcn.00776e71
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x4abb7b
call fcn.00776e71
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4abb8e
call fcn.00776e71
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4abb96
mov eax, dword [eax]
jmp 0x4abb98
mov eax, dword [ebx]
jmp 0x4abb71
xor eax, eax
mov ecx, dword [esi + 0x10]
cmp ecx, dword [eax + 0x10]
jb 0x4abba5
call fcn.00776e71
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
mov eax, dword [esi + 0x10]
sar edx, 2
cmp dword [eax + 0x78], edx
ja 0x4abc1e
test ebx, ebx
jne 0x4abbe0
call fcn.00776e71
cmp esi, dword [ebx + 0x18]
jne 0x4abbc9
call fcn.00776e71
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4abbdc
call fcn.00776e71
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4abbe4
mov eax, dword [eax]
jmp 0x4abbe6
mov ebx, dword [ebx]
jmp 0x4abbbf
xor eax, eax
mov ecx, dword [esi + 0x10]
cmp ecx, dword [eax + 0x10]
jb 0x4abbf3
call fcn.00776e71
mov esi, dword [esi + 0x10]
mov edx, dword [esi + 0x78]
dec edx
push edx
mov ecx, ebp
call fcn.0052d01f
lea ecx, [esp + 0x50]
mov dword [eax], 0xfffffffe
call fcn.004a735f
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
jmp 0x4abb3f
push 0x26
push 0x1047163c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.0040517f
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x64]
mov dword [esp + 0xe4], 7
call fcn.004c07cf
push 0x104f2130
lea ecx, [esp + 0x64]
push ecx
call fcn.00776cc8
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edx]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x20], ecx
cmp edx, 0x6d
jbe 0x4abc88
mov edx, 0x6d
test edx, edx
jbe 0x4abc9e
lea eax, [edi + 0x58]
mov dword [eax], ecx
inc ecx
add eax, 4
sub edx, 1
jne 0x4abc8f
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x1c], 0
jbe 0x4abf9b
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x7f
push 0
lea esi, [edi + 0x214]
push ecx
mov ecx, esi
call fcn.0043a70f
mov ebx, dword [esi + 0x10]
cmp dword [esi + 0xc], ebx
jbe 0x4abccd
call fcn.00776e71
mov eax, dword [esi + 0xc]
mov dword [esp + 0x48], eax
cmp eax, dword [esi + 0x10]
jbe 0x4abce2
call fcn.00776e71
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x4abcfc
jmp 0x4abcef
mov dword [eax], 0xffffffff
add eax, 4
cmp eax, ebx
jne 0x4abcef
mov eax, dword [esp + 0x4c]
xor ebx, ebx
add eax, 0xffffff93
mov dword [esp + 0x48], eax
je 0x4abd46
lea esp, [esp]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0xc]
sar edx, 2
cmp ebx, edx
jae 0x4abd63
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
sar ecx, 2
cmp ebx, ecx
jb 0x4abd32
call fcn.00776e71
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 0xc]
mov dword [edx + ebx*4], ecx
inc ecx
inc ebx
mov dword [esp + 0x20], ecx
cmp ebx, eax
jb 0x4abd0f
mov edx, dword [esp + 0x18]
push 4
mov dword [edi + 0x50], edx
call fcn.00776c63
add esp, 4
test eax, eax
je 0x4abdb9
lea ecx, [esp + 0x24]
mov dword [eax], ecx
jmp 0x4abdbb
push 0x29
push 0x10471610
lea ecx, [esp + 0x68]
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], 0
mov byte [esp + 0x6c], 0
call fcn.0040517f
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0xe4], 8
call fcn.004c07cf
push 0x104f2130
lea ecx, [esp + 0xb0]
push ecx
call fcn.00776cc8
xor eax, eax
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
push eax
push 0x80
lea ecx, [esp + 0x2c]
mov dword [esp + 0xe8], 0xa
call fcn.0043a70f
mov ebx, dword [esi + 0xc]
cmp ebx, dword [esi + 0x10]
jbe 0x4abdf4
call fcn.00776e71
cmp dword [esp + 0x1c], 0
mov edx, dword [esi]
mov dword [esp + 0x58], edx
mov dword [esp + 0x48], 0
jbe 0x4abf64
add ebx, 0x1fc
mov dword [esp + 0x20], ebx
jmp 0x4abe1f
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], eax
cmp eax, dword [esp + 0x34]
jbe 0x4abe32
call fcn.00776e71
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
test ecx, ecx
jne 0x4abe5a
call fcn.00776e71
mov ecx, dword [esp + 0x58]
xor eax, eax
mov ebx, dword [esp + 0x20]
cmp ebx, dword [eax + 0x10]
ja 0x4abe65
test ecx, ecx
je 0x4abe5e
mov eax, dword [ecx]
jmp 0x4abe60
mov eax, dword [ecx]
jmp 0x4abe49
xor eax, eax
cmp ebx, dword [eax + 0xc]
jae 0x4abe6a
call fcn.00776e71
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x50]
mov byte [esp + 0x88], 0
mov eax, dword [esp + 0x88]
push eax
mov eax, dword [esp + 0x54]
push ecx
push edx
push eax
push esi
push ebx
lea ecx, [ebx - 0x1fc]
push ecx
lea edx, [esp + 0xa8]
push edx
call fcn.004a764f
mov esi, dword [esp + 0x78]
add esp, 0x20
test esi, esi
jne 0x4abebe
call fcn.00776e71
xor eax, eax
cmp ebx, dword [eax + 0x10]
ja 0x4abec9
test esi, esi
je 0x4abec2
mov eax, dword [esi]
jmp 0x4abec4
mov eax, dword [esi]
jmp 0x4abeb1
xor eax, eax
cmp ebx, dword [eax + 0xc]
jae 0x4abece
call fcn.00776e71
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x48]
add dword [esp + 0x20], 0x1fc
dec eax
cmp ebx, eax
jae 0x4abeed
mov eax, dword [esp + 0x18]
lea esi, [ebx + eax + 1]
jmp 0x4abef2
mov esi, 0xfffffffe
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
sar ecx, 2
cmp ecx, 0x7f
ja 0x4abf07
call fcn.00776e71
mov edx, dword [esp + 0x30]
mov dword [edx + 0x1fc], esi
xor esi, esi
test dword [edi + 0x20c], 0xfffffffc
jbe 0x4abf55
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
sar eax, 2
cmp esi, eax
jb 0x4abf33
call fcn.00776e71
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + esi*4]
mov eax, dword [edi + 8]
push edx
push eax
call fcn.00442cdf
mov ecx, dword [edi + 0x20c]
inc esi
shr ecx, 2
add esp, 8
cmp esi, ecx
jb 0x4abf1f
inc ebx
mov dword [esp + 0x48], ebx
cmp ebx, dword [esp + 0x1c]
jb 0x4abe1f
mov eax, dword [esp + 0x30]
xor esi, esi
mov dword [esp + 0xe0], 0xffffffff
cmp eax, esi
je 0x4abf82
push eax
call fcn.00776c58
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.00776c58
add esp, 4
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp + 0xc]
test eax, 0xfffffffc
je 0x4abff2
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
xor esi, esi
sar ecx, 2
test ecx, ecx
jbe 0x4abff2
jmp 0x4abfbf
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 0xc]
sar edx, 2
cmp esi, edx
jb 0x4abfd1
call fcn.00776e71
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + esi*4]
mov edx, dword [edi + 8]
push ecx
push edx
call fcn.00442cdf
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp + 0xc]
inc esi
sar eax, 2
add esp, 8
cmp esi, eax
jb 0x4abfbf
mov ecx, dword [edi + 0x26c]
sub ecx, dword [edi + 0x268]
mov eax, 0x78787879
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x4ac0d8
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
add eax, edx
add eax, dword [esp + 0x18]
xor esi, esi
mov dword [edi + 0x3c], eax
mov ecx, dword [edi + 0x26c]
sub ecx, dword [edi + 0x268]
mov eax, 0x78787879
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x4ac0ae
xor ebp, ebp
lea ebx, [ebx]
mov ecx, dword [edi + 0x26c]
sub ecx, dword [edi + 0x268]
mov eax, 0x78787879
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4ac075
call fcn.00776e71
mov ecx, dword [edi + 8]
push ecx
mov ecx, dword [edi + 0x268]
add ecx, ebp
call fcn.00452d4f
mov ecx, dword [edi + 0x26c]
sub ecx, dword [edi + 0x268]
mov eax, 0x78787879
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
add ebp, 0x88
cmp esi, eax
jb 0x4ac04f
mov ecx, dword [edi + 0x26c]
sub ecx, dword [edi + 0x268]
mov eax, 0x78787879
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
shl ecx, 7
push 0
push ecx
mov ecx, edi
call fcn.004aaecf
mov eax, dword [edi + 8]
mov edx, dword [eax + 8]
mov ecx, dword [edx + 4]
add eax, 8
add eax, ecx
mov bl, 6
test byte [eax + 8], bl
jne 0x4ac10c
mov ecx, dword [eax + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
push 2
push 1
push 0
lea eax, [esp + 0x30]
push eax
call edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
jmp 0x4ac117
mov eax, dword [0x104c82ec]
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov esi, dword [edi + 8]
add ecx, eax
mov dword [edi + 0x2d0], ecx
mov eax, dword [esi + 8]
mov ecx, dword [eax + 4]
add esi, 8
test byte [ecx + esi + 8], bl
jne 0x4ac183
push 2
mov edx, ecx
mov ecx, dword [edx + esi + 0x28]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
push 0
push 0
lea edx, [esp + 0xa0]
push edx
call eax
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x9c]
add edx, ecx
cmp edx, dword [0x104c82ec]
jne 0x4ac183
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 8]
add ecx, esi
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x4ac17b
or eax, 4
push 0
push eax
call fcn.0040946f
mov ecx, dword [edi + 8]
push ecx
lea ecx, [edi + 0xc]
call fcn.004ae8ff
mov edi, dword [edi + 8]
mov edx, dword [edi + 8]
mov eax, dword [edx + 4]
add edi, 8
add eax, edi
xor esi, esi
test byte [eax + 8], bl
jne 0x4ac1ba
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x30]
call eax
cmp eax, 0xffffffff
jne 0x4ac1ba
mov esi, 4
mov ecx, dword [edi]
mov ecx, dword [ecx + 4]
add ecx, edi
test esi, esi
je 0x4ac1db
mov eax, dword [ecx + 8]
or eax, esi
cmp dword [ecx + 0x28], 0
jne 0x4ac1d3
or eax, 4
push 0
push eax
call fcn.0040946f
mov ecx, dword [esp + 0xd8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret