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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
cmp dword [ebp + 8], ecx
mov dword [ebp - 0x44], ecx
je 0x6aed4b
mov eax, dword [ebp + 8]
mov esi, dword [ecx + 8]
mov edi, dword [ecx]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov edx, esi
sub edx, edi
mov dword [ebp - 0x2c], esi
sar edx, 5
mov dword [ebp - 0x38], eax
sub eax, ebx
mov dword [ebp - 0x48], eax
sar eax, 5
imul eax, eax, 0xcccccccd
imul edx, edx, 0xcccccccd
mov dword [ebp - 0x3c], eax
cmp edx, eax
jb 0x6af55c
mov esi, dword [ebp - 0x44]
mov esi, dword [esi + 4]
mov edx, esi
mov dword [ebp - 0x4c], esi
sub edx, edi
mov ecx, edx
sar ecx, 5
imul esi, ecx, 0xcccccccd
cmp eax, esi
mov dword [ebp - 0x40], esi
jbe 0x6aed58
test esi, esi
jle 0x6aefd4
add edi, 0x1c
lea esi, [ebx + 0x1c]
jmp 0x6aeaff
test ebx, ebx
jne 0x6af50d
add ecx, dword [ebp - 0x2c]
mov dword [edi + 0x38], ecx
lea eax, [esi + 0x40]
lea ecx, [edi + 0x40]
mov dword [esp], eax
call fcn.006b0690
lea eax, [esi + 0x4c]
sub esp, 4
lea ecx, [edi + 0x4c]
mov dword [esp], eax
call fcn.006b01f0
lea eax, [esi + 0x58]
sub esp, 4
lea ecx, [edi + 0x58]
mov dword [esp], eax
call fcn.00686de0
lea eax, [esi + 0x74]
sub esp, 4
lea ecx, [edi + 0x74]
add esi, 0xa0
add edi, 0xa0
mov dword [esp], eax
call fcn.006ba580
mov eax, dword [esi - 0x20]
sub esp, 4
mov dword [edi - 0x20], eax
sub dword [ebp - 0x40], 1
je 0x6aefb7
mov eax, dword [esi - 0x1c]
mov ecx, edi
mov dword [edi - 0x1c], eax
mov eax, dword [esi - 0x18]
mov dword [edi - 0x18], eax
mov eax, dword [esi - 0x14]
mov dword [edi - 0x14], eax
mov eax, dword [esi - 0x10]
mov dword [edi - 0x10], eax
mov eax, dword [esi - 0xc]
mov dword [edi - 0xc], eax
mov eax, dword [esi - 8]
mov dword [edi - 8], eax
mov eax, dword [esi - 4]
mov dword [edi - 4], eax
mov dword [esp], esi
call fcn.006b1aa0
lea eax, [esi + 0xc]
sub esp, 4
lea ecx, [edi + 0xc]
mov dword [esp], eax
call fcn.00686de0
lea eax, [esi + 0x28]
sub esp, 4
lea ecx, [edi + 0x28]
mov dword [esp], eax
call fcn.006b0a50
lea edx, [esi + 0x34]
lea eax, [edi + 0x34]
sub esp, 4
cmp edx, eax
je 0x6aea9f
mov eax, dword [esi + 0x34]
mov edx, dword [edi + 0x3c]
mov ebx, eax
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x38], eax
sub eax, ebx
mov ebx, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x34]
sar ebx, 4
sub edx, eax
mov dword [ebp - 0x34], eax
mov ecx, eax
mov eax, edx
sar eax, 4
cmp ebx, eax
ja 0x6aef20
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x34], eax
sub eax, ecx
mov edx, eax
sar edx, 4
cmp ebx, edx
jbe 0x6aea91
test edx, edx
jne 0x6af52d
add eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x38]
sub edx, eax
mov ebx, edx
sar ebx, 4
test ebx, ebx
je 0x6aea99
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 8], edx
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov ecx, dword [ebp - 0x2c]
add ecx, dword [edi + 0x34]
jmp 0x6aea9c
cmp dword [ebp - 0x4c], edi
mov esi, dword [ebp - 0x4c]
je 0x6aed40
mov eax, dword [edi + 0x90]
test eax, eax
je 0x6aec06
mov dword [esp], eax
call fcn.006eb330
mov ebx, dword [edi + 0x7c]
test ebx, ebx
je 0x6aec36
lea esi, [esi]
mov eax, dword [ebx]
lea edx, [ebx + 0xc]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 4]
cmp eax, edx
je 0x6aec27
mov dword [esp], eax
call fcn.006eb330
mov dword [esp], ebx
call fcn.006eb330
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
jne 0x6aec10
mov eax, dword [edi + 0x78]
mov edx, dword [edi + 0x74]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov eax, dword [edi + 0x74]
lea edx, [edi + 0x8c]
mov dword [edi + 0x80], 0
mov dword [edi + 0x7c], 0
cmp eax, edx
je 0x6aec79
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [edi + 0x68]
test eax, eax
je 0x6aec88
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x6aec97
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [edi + 0x50]
test eax, eax
je 0x6aeca6
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [edi + 0x44]
test eax, eax
je 0x6aecb5
mov dword [esp], eax
call fcn.006eb330
mov ebx, dword [edi + 0x30]
test ebx, ebx
je 0x6aece6
lea esi, [esi]
mov eax, dword [ebx]
lea edx, [ebx + 0xc]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 4]
cmp eax, edx
je 0x6aecd7
mov dword [esp], eax
call fcn.006eb330
mov dword [esp], ebx
call fcn.006eb330
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
jne 0x6aecc0
mov eax, dword [edi + 0x2c]
mov edx, dword [edi + 0x28]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov eax, dword [edi + 0x28]
lea edx, [edi + 0x40]
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
cmp eax, edx
je 0x6aed23
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x6aed32
mov dword [esp], eax
call fcn.006eb330
add edi, 0xa0
cmp esi, edi
jne 0x6aebf4
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
add eax, dword [ebx]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x44]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov eax, dword [ebp - 0x3c]
lea esi, [ebx + 0x1c]
test eax, eax
jg 0x6aede1
jmp 0x6aebe8
test ebx, ebx
jne 0x6af4ed
add ecx, dword [ebp - 0x2c]
mov dword [edi + 0x54], ecx
lea eax, [esi + 0x40]
lea ecx, [edi + 0x5c]
mov dword [esp], eax
call fcn.006b0690
lea eax, [esi + 0x4c]
sub esp, 4
lea ecx, [edi + 0x68]
mov dword [esp], eax
call fcn.006b01f0
lea eax, [esi + 0x58]
sub esp, 4
lea ecx, [edi + 0x74]
mov dword [esp], eax
call fcn.00686de0
lea eax, [esi + 0x74]
sub esp, 4
lea ecx, [edi + 0x90]
add esi, 0xa0
add edi, 0xa0
mov dword [esp], eax
call fcn.006ba580
mov eax, dword [esi - 0x20]
sub esp, 4
mov dword [edi - 4], eax
sub dword [ebp - 0x3c], 1
je 0x6aebe8
mov eax, dword [esi - 0x1c]
lea ecx, [edi + 0x1c]
mov dword [edi], eax
mov eax, dword [esi - 0x18]
mov dword [edi + 4], eax
mov eax, dword [esi - 0x14]
mov dword [edi + 8], eax
mov eax, dword [esi - 0x10]
mov dword [edi + 0xc], eax
mov eax, dword [esi - 0xc]
mov dword [edi + 0x10], eax
mov eax, dword [esi - 8]
mov dword [edi + 0x14], eax
mov eax, dword [esi - 4]
mov dword [edi + 0x18], eax
mov dword [esp], esi
call fcn.006b1aa0
lea eax, [esi + 0xc]
sub esp, 4
lea ecx, [edi + 0x28]
mov dword [esp], eax
call fcn.00686de0
lea eax, [esi + 0x28]
sub esp, 4
lea ecx, [edi + 0x44]
mov dword [esp], eax
call fcn.006b0a50
lea edx, [esi + 0x34]
lea eax, [edi + 0x50]
sub esp, 4
cmp edx, eax
je 0x6aed7e
mov eax, dword [esi + 0x34]
mov edx, dword [edi + 0x58]
mov ebx, eax
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x38], eax
sub eax, ebx
mov ebx, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x50]
sar ebx, 4
sub edx, eax
mov dword [ebp - 0x34], eax
mov ecx, eax
mov eax, edx
sar eax, 4
cmp ebx, eax
ja 0x6aeed0
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x34], eax
sub eax, ecx
mov edx, eax
sar edx, 4
cmp ebx, edx
jbe 0x6aed70
test edx, edx
jne 0x6af4be
add eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x38]
sub edx, eax
mov ebx, edx
sar ebx, 4
test ebx, ebx
je 0x6aed78
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 8], edx
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov ecx, dword [ebp - 0x2c]
add ecx, dword [edi + 0x50]
jmp 0x6aed7b
xor ecx, ecx
test ebx, ebx
mov eax, dword [ebp - 0x34]
je 0x6aef00
cmp ebx, 0xfffffff
ja 0x6afca2
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.006eb380
test ebx, ebx
mov ecx, eax
jne 0x6aef90
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x6aef12
mov dword [esp], eax
mov dword [ebp - 0x30], ecx
call fcn.006eb330
mov ecx, dword [ebp - 0x30]
mov dword [edi + 0x50], ecx
add ecx, dword [ebp - 0x2c]
mov dword [edi + 0x58], ecx
jmp 0x6aed7b
xor ecx, ecx
test ebx, ebx
mov eax, dword [ebp - 0x34]
je 0x6aef4c
cmp ebx, 0xfffffff
ja 0x6afca2
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.006eb380
test ebx, ebx
mov ecx, eax
jne 0x6aef6c
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x6aef5e
mov dword [esp], eax
mov dword [ebp - 0x30], ecx
call fcn.006eb330
mov ecx, dword [ebp - 0x30]
mov dword [edi + 0x34], ecx
add ecx, dword [ebp - 0x2c]
mov dword [edi + 0x3c], ecx
jmp 0x6aea9c
mov eax, dword [ebp - 0x2c]
mov dword [esp], ecx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
mov eax, dword [edi + 0x34]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
jmp 0x6aef4c
mov eax, dword [ebp - 0x2c]
mov dword [esp], ecx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
mov eax, dword [edi + 0x50]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
jmp 0x6aef00
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebx + 4]
mov eax, dword [esi + 4]
mov edi, dword [esi]
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp + 8]
mov edx, eax
mov dword [ebp - 0x4c], eax
sub edx, edi
mov ebx, dword [ebx]
lea eax, [ebx + edx]
cmp eax, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ebx
je 0x6afbf7
lea esi, [esi]
mov esi, dword [ebp - 0x2c]
test esi, esi
je 0x6af47d
mov ebx, dword [ebp - 0x30]
mov edi, esi
mov eax, dword [ebx]
mov dword [esi], eax
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov eax, dword [ebx + 8]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x18], eax
mov eax, ebx
mov ebx, dword [ebx + 0x20]
sub ebx, dword [eax + 0x1c]
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov eax, ebx
sar eax, 4
test eax, eax
je 0x6af064
cmp eax, 0xfffffff
ja 0x6afc04
mov dword [esp], ebx
call fcn.006eb380
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
add ebx, eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ebx
mov ebx, dword [esi + 0x20]
mov esi, dword [esi + 0x1c]
cmp ebx, esi
je 0x6af0b0
mov ecx, eax
mov edx, esi
test ecx, ecx
je 0x6af09a
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edi, dword [edx + 0xc]
mov dword [ecx + 0xc], edi
add edx, 0x10
add ecx, 0x10
cmp ebx, edx
jne 0x6af080
add esi, 0x10
sub ebx, esi
and ebx, 0xfffffff0
lea eax, [eax + ebx + 0x10]
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
mov dword [esi + 0x20], eax
lea eax, [esi + 0x28]
mov dword [esi + 0x28], 0
mov ecx, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x34]
mov dword [esi + 0x34], eax
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
mov dword [esi + 0x40], 0
mov dword [esi + 0x38], eax
lea eax, [ebp - 0x20]
mov dword [esi + 0x3c], edx
mov dword [ebp - 0x20], ecx
mov dword [esp + 4], eax
mov eax, ebx
add eax, 0x28
mov dword [esp], eax
call fcn.00686540
mov eax, ebx
mov ebx, dword [ebx + 0x48]
sub esp, 8
sub ebx, dword [eax + 0x44]
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov eax, ebx
sar eax, 2
imul eax, eax, 0x3e0f83e1
test eax, eax
je 0x6af4af
cmp eax, 0x1f07c1f
ja 0x6afcef
mov dword [esp], ebx
call fcn.006eb380
mov dword [ebp - 0x34], eax
mov edx, eax
mov eax, dword [ebp - 0x2c]
add ebx, edx
mov dword [eax + 0x44], edx
mov dword [eax + 0x48], edx
mov dword [eax + 0x4c], ebx
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax + 0x48]
mov eax, dword [eax + 0x44]
cmp ebx, eax
mov dword [ebp - 0x3c], eax
je 0x6af1b7
nop
test edx, edx
je 0x6af17f
mov ecx, 0x21
mov edi, edx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
add eax, 0x84
add edx, 0x84
cmp ebx, eax
jne 0x6af170
mov eax, dword [ebp - 0x3c]
add eax, 0x84
sub ebx, eax
mov eax, ebx
shr eax, 2
imul eax, eax, 0x3e0f83e1
and eax, 0x3fffffff
add eax, 1
imul eax, eax, 0x84
add dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [eax + 0x54]
sub esi, dword [eax + 0x50]
mov dword [ebx + 0x48], edx
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], 0
mov dword [ebx + 0x58], 0
xor ebx, ebx
mov eax, esi
sar eax, 4
test eax, eax
je 0x6af1fb
cmp eax, 0xfffffff
ja 0x6afd8f
mov dword [esp], esi
call fcn.006eb380
mov ebx, eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
add esi, ebx
mov dword [eax + 0x58], esi
mov dword [eax + 0x50], ebx
mov dword [eax + 0x54], ebx
mov edx, dword [ecx + 0x54]
mov eax, dword [ecx + 0x50]
mov esi, edx
mov dword [ebp - 0x34], edx
sub esi, eax
mov edx, esi
sar edx, 4
test edx, edx
je 0x6af232
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll_memmove
add ebx, esi
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov dword [esi + 0x54], ebx
mov ebx, dword [eax + 0x60]
mov edi, esi
sub ebx, dword [eax + 0x5c]
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
mov eax, ebx
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x6af27f
cmp eax, 0xaaaaaaa
ja 0x6afddc
mov dword [esp], ebx
call fcn.006eb380
mov edi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
add ebx, eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], ebx
mov ebx, dword [edx + 0x60]
mov esi, dword [edx + 0x5c]
cmp ebx, esi
je 0x6af2e5
mov ecx, eax
mov edx, esi
nop
lea esi, [esi]
test ecx, ecx
je 0x6af2c6
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edi, dword [edx + 0xc]
mov dword [ecx + 0xc], edi
mov edi, dword [edx + 0x10]
mov dword [ecx + 0x10], edi
mov edi, dword [edx + 0x14]
mov dword [ecx + 0x14], edi
add edx, 0x18
add ecx, 0x18
cmp ebx, edx
jne 0x6af2a0
add esi, 0x18
sub ebx, esi
shr ebx, 3
imul ebx, ebx, 0xaaaaaab
lea edx, [ebx + ebx*2]
lea eax, [eax + edx*8 + 0x18]
mov esi, dword [ebp - 0x2c]
mov dword [esi + 0x60], eax
mov eax, dword [ebp - 0x30]
mov edi, esi
mov ebx, dword [eax + 0x6c]
sub ebx, dword [eax + 0x68]
mov dword [esi + 0x68], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x70], 0
mov eax, ebx
sar eax, 2
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x6af330
cmp eax, 0x15555555
ja 0x6afca7
mov dword [esp], ebx
call fcn.006eb380
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
add ebx, eax
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], eax
mov dword [edi + 0x70], ebx
mov ebx, dword [ecx + 0x6c]
mov esi, dword [ecx + 0x68]
cmp ebx, esi
je 0x6af389
mov ecx, eax
mov edx, esi
lea esi, [esi]
test ecx, ecx
je 0x6af364
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
add edx, 0xc
add ecx, 0xc
cmp ebx, edx
jne 0x6af350
add esi, 0xc
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
sub ebx, esi
shr ebx, 2
imul ebx, ebx, 0x2aaaaaab
lea edx, [ebx + ebx*2]
lea eax, [eax + edx*4 + 0xc]
mov dword [edi + 0x6c], eax
mov eax, dword [ecx + 0x78]
lea ebx, [edi + 0x74]
mov dword [edi + 0x74], 0
mov dword [edi + 0x7c], 0
mov esi, ecx
mov dword [edi + 0x78], eax
mov eax, dword [ecx + 0x80]
mov dword [edi + 0x80], eax
mov eax, dword [ecx + 0x84]
mov edx, dword [ecx + 0x88]
mov dword [edi + 0x8c], 0
mov dword [edi + 0x84], eax
lea eax, [ebp - 0x1c]
mov dword [edi + 0x88], edx
mov dword [ebp - 0x1c], ebx
mov dword [esp + 4], eax
mov eax, ecx
mov ecx, ebx
add eax, 0x74
mov dword [esp], eax
call fcn.00686540
mov eax, esi
mov esi, dword [esi + 0x94]
sub esp, 8
sub esi, dword [eax + 0x90]
mov dword [edi + 0x90], 0
mov dword [edi + 0x94], 0
mov dword [edi + 0x98], 0
xor edi, edi
test esi, esi
jne 0x6af4a0
mov eax, dword [ebp - 0x2c]
add esi, edi
xor ebx, ebx
mov dword [eax + 0x90], edi
mov dword [eax + 0x94], edi
mov dword [eax + 0x98], esi
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x90]
mov eax, dword [eax + 0x94]
mov dword [ebp - 0x34], eax
sub eax, edx
je 0x6af462
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov ebx, eax
mov dword [esp], edi
call sub.msvcrt.dll_memmove
lea eax, [edi + ebx]
mov ebx, dword [ebp - 0x2c]
mov dword [ebx + 0x94], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x9c]
mov dword [ebx + 0x9c], eax
add dword [ebp - 0x30], 0xa0
add dword [ebp - 0x2c], 0xa0
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x38]
jne 0x6aeff0
jmp 0x6aed40
mov dword [esp], esi
call fcn.006eb380
mov edi, eax
jmp 0x6af421
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x34]
jmp 0x6af150
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
mov ebx, dword [esi + 0x34]
mov eax, dword [edi + 0x54]
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0x30], ebx
mov ebx, dword [esi + 0x38]
mov dword [ebp - 0x34], eax
sub eax, ecx
mov dword [ebp - 0x38], ebx
jmp 0x6aee93
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov dword [esp], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
mov ecx, dword [edi + 0x50]
add ecx, ebx
jmp 0x6aed7b
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov dword [esp], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
mov ecx, dword [edi + 0x34]
add ecx, ebx
jmp 0x6aea9c
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
mov ebx, dword [esi + 0x34]
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x34]
mov dword [ebp - 0x30], ebx
mov ebx, dword [esi + 0x38]
mov dword [ebp - 0x34], eax
sub eax, ecx
mov dword [ebp - 0x38], ebx
jmp 0x6aebb5
test eax, eax
je 0x6afbeb
cmp eax, 0x1999999
ja 0x6afca2
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call fcn.006eb380
mov dword [ebp - 0x4c], eax
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x38]
cmp eax, ebx
je 0x6afa3f
mov esi, dword [ebp - 0x2c]
test esi, esi
je 0x6afa25
mov ecx, dword [ebp - 0x30]
mov edi, esi
mov eax, dword [ecx]
mov ebx, dword [ecx + 0x20]
sub ebx, dword [ecx + 0x1c]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x18], eax
mov eax, ebx
sar eax, 4
test eax, eax
je 0x6af605
cmp eax, 0xfffffff
ja 0x6afdd0
mov dword [esp], ebx
call fcn.006eb380
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
add ebx, eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ebx
mov ebx, dword [esi + 0x20]
mov esi, dword [esi + 0x1c]
cmp ebx, esi
je 0x6af651
mov ecx, eax
mov edx, esi
test ecx, ecx
je 0x6af63b
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edi, dword [edx + 0xc]
mov dword [ecx + 0xc], edi
add edx, 0x10
add ecx, 0x10
cmp ebx, edx
jne 0x6af621
add esi, 0x10
sub ebx, esi
and ebx, 0xfffffff0
lea eax, [eax + ebx + 0x10]
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
mov dword [esi + 0x20], eax
lea eax, [esi + 0x28]
mov dword [esi + 0x28], 0
mov ecx, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x34]
mov dword [esi + 0x34], eax
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
mov dword [esi + 0x40], 0
mov dword [ebp - 0x20], ecx
mov dword [esi + 0x38], eax
lea eax, [ebp - 0x20]
mov dword [esi + 0x3c], edx
mov dword [esp + 4], eax
mov eax, ebx
add eax, 0x28
mov dword [esp], eax
call fcn.00686540
mov eax, ebx
mov ebx, dword [ebx + 0x48]
sub esp, 8
sub ebx, dword [eax + 0x44]
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov eax, ebx
sar eax, 2
imul eax, eax, 0x3e0f83e1
test eax, eax
je 0x6afbdc
cmp eax, 0x1f07c1f
ja 0x6afdac
mov dword [esp], ebx
call fcn.006eb380
mov dword [ebp - 0x34], eax
mov edx, eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
add ebx, edx
mov dword [ecx + 0x44], edx
mov dword [ecx + 0x48], edx
mov dword [ecx + 0x4c], ebx
mov ebx, dword [eax + 0x48]
mov eax, dword [eax + 0x44]
cmp ebx, eax
mov dword [ebp - 0x3c], eax
je 0x6af752
nop
test edx, edx
je 0x6af71f
mov ecx, 0x21
mov edi, edx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
add eax, 0x84
add edx, 0x84
cmp ebx, eax
jne 0x6af710
mov eax, dword [ebp - 0x3c]
add eax, 0x84
sub ebx, eax
shr ebx, 2
imul eax, ebx, 0x3e0f83e1
and eax, 0x3fffffff
add eax, 1
imul eax, eax, 0x84
add dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x34]
mov dword [edx + 0x48], ebx
mov ebx, dword [eax + 0x54]
sub ebx, dword [eax + 0x50]
mov dword [edx + 0x50], 0
mov dword [edx + 0x54], 0
mov dword [edx + 0x58], 0
mov eax, ebx
sar eax, 4
test eax, eax
je 0x6afbd3
cmp eax, 0xfffffff
ja 0x6afdb8
mov dword [esp], ebx
call fcn.006eb380
mov esi, eax
mov eax, dword [ebp - 0x2c]
add ebx, esi
mov dword [eax + 0x50], esi
mov dword [eax + 0x54], esi
mov dword [eax + 0x58], ebx
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebx + 0x50]
mov ebx, dword [ebx + 0x54]
mov dword [ebp - 0x34], ebx
sub ebx, eax
mov edx, ebx
sar edx, 4
test edx, edx
je 0x6af7d0
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_memmove
mov eax, dword [ebp - 0x30]
add esi, ebx
mov ecx, dword [ebp - 0x2c]
mov ebx, dword [eax + 0x60]
sub ebx, dword [eax + 0x5c]
mov edi, ecx
mov dword [ecx + 0x54], esi
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0x60], 0
mov dword [ecx + 0x64], 0
mov eax, ebx
sar eax, 3
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x6af81d
cmp eax, 0xaaaaaaa
ja 0x6afd94
mov dword [esp], ebx
call fcn.006eb380
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
add ebx, eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], ebx
mov ebx, dword [esi + 0x60]
mov esi, dword [esi + 0x5c]
cmp ebx, esi
je 0x6af885
mov ecx, eax
mov edx, esi
lea esi, [esi]
test ecx, ecx
je 0x6af866
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edi, dword [edx + 0xc]
mov dword [ecx + 0xc], edi
mov edi, dword [edx + 0x10]
mov dword [ecx + 0x10], edi
mov edi, dword [edx + 0x14]
mov dword [ecx + 0x14], edi
add edx, 0x18
add ecx, 0x18
cmp ebx, edx
jne 0x6af840
add esi, 0x18
sub ebx, esi
shr ebx, 3
imul edx, ebx, 0xaaaaaab
lea edx, [edx + edx*2]
lea eax, [eax + edx*8 + 0x18]
mov esi, dword [ebp - 0x2c]
mov dword [esi + 0x60], eax
mov eax, dword [ebp - 0x30]
mov edi, esi
mov ebx, dword [eax + 0x6c]
sub ebx, dword [eax + 0x68]
mov dword [esi + 0x68], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x70], 0
mov eax, ebx
sar eax, 2
imul eax, eax, 0xaaaaaaab
test eax, eax
je 0x6af8d0
cmp eax, 0x15555555
ja 0x6afda0
mov dword [esp], ebx
call fcn.006eb380
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
add ebx, eax
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], eax
mov dword [edi + 0x70], ebx
mov ebx, dword [ecx + 0x6c]
mov esi, dword [ecx + 0x68]
cmp ebx, esi
je 0x6af92b
mov ecx, eax
mov edx, esi
lea esi, [esi]
test ecx, ecx
je 0x6af904
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
add edx, 0xc
add ecx, 0xc
cmp ebx, edx
jne 0x6af8f0
add esi, 0xc
mov ecx, dword [ebp - 0x2c]
sub ebx, esi
shr ebx, 2
imul edx, ebx, 0x2aaaaaab
mov edi, ecx
mov ecx, dword [ebp - 0x30]
lea edx, [edx + edx*2]
lea eax, [eax + edx*4 + 0xc]
mov dword [edi + 0x6c], eax
mov eax, dword [ecx + 0x78]
mov ebx, edi
mov dword [edi + 0x74], 0
mov dword [edi + 0x7c], 0
add ebx, 0x74
mov esi, ecx
mov dword [edi + 0x78], eax
mov eax, dword [ecx + 0x80]
mov dword [edi + 0x80], eax
mov eax, dword [ecx + 0x84]
mov edx, dword [ecx + 0x88]
mov dword [edi + 0x8c], 0
mov dword [ebp - 0x1c], ebx
mov dword [edi + 0x84], eax
lea eax, [ebp - 0x1c]
mov dword [edi + 0x88], edx
mov dword [esp + 4], eax
mov eax, ecx
mov ecx, ebx
add eax, 0x74
mov dword [esp], eax
call fcn.00686540
mov eax, esi
mov esi, dword [esi + 0x94]
sub esp, 8
sub esi, dword [eax + 0x90]
mov dword [edi + 0x90], 0
mov dword [edi + 0x94], 0
mov dword [edi + 0x98], 0
xor edi, edi
test esi, esi
jne 0x6afbc4
mov eax, dword [ebp - 0x2c]
add esi, edi
xor ebx, ebx
mov dword [eax + 0x90], edi
mov dword [eax + 0x94], edi
mov dword [eax + 0x98], esi
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x90]
mov eax, dword [eax + 0x94]
mov dword [ebp - 0x34], eax
sub eax, edx
je 0x6afa0a
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov ebx, eax
mov dword [esp], edi
call sub.msvcrt.dll_memmove
lea eax, [edi + ebx]
mov ebx, dword [ebp - 0x2c]
mov dword [ebx + 0x94], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x9c]
mov dword [ebx + 0x9c], eax
add dword [ebp - 0x30], 0xa0
add dword [ebp - 0x2c], 0xa0
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x38], eax
jne 0x6af593
mov eax, dword [ebp - 0x44]
mov edi, dword [eax + 4]
mov ebx, dword [eax]
cmp edi, ebx
je 0x6afba5
nop
mov eax, dword [ebx + 0x90]
test eax, eax
je 0x6afa62
mov dword [esp], eax
call fcn.006eb330
mov esi, dword [ebx + 0x7c]
test esi, esi
je 0x6afa96
lea esi, [esi]
mov eax, dword [esi]
lea edx, [esi + 0xc]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 4]
cmp eax, edx
je 0x6afa87
mov dword [esp], eax
call fcn.006eb330
mov dword [esp], esi
call fcn.006eb330
mov esi, dword [ebp - 0x2c]
test esi, esi
jne 0x6afa70
mov eax, dword [ebx + 0x78]
mov edx, dword [ebx + 0x74]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x74]
lea edx, [ebx + 0x8c]
mov dword [ebx + 0x80], 0
mov dword [ebx + 0x7c], 0
cmp eax, edx
je 0x6afad9
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x6afae8
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [ebx + 0x5c]
test eax, eax
je 0x6afaf7
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x6afb06
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x6afb15
mov dword [esp], eax
call fcn.006eb330
mov esi, dword [ebx + 0x30]
test esi, esi
je 0x6afb46
lea esi, [esi]
mov eax, dword [esi]
lea edx, [esi + 0xc]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 4]
cmp eax, edx
je 0x6afb37
mov dword [esp], eax
call fcn.006eb330
mov dword [esp], esi
call fcn.006eb330
mov esi, dword [ebp - 0x2c]
test esi, esi
jne 0x6afb20
mov eax, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x28]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x28]
lea edx, [ebx + 0x40]
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x30], 0
cmp eax, edx
je 0x6afb83
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x6afb92
mov dword [esp], eax
call fcn.006eb330
add ebx, 0xa0
cmp edi, ebx
jne 0x6afa50
mov eax, dword [ebp - 0x44]
mov ebx, dword [eax]
test ebx, ebx
je 0x6afbb1
mov dword [esp], ebx
call fcn.006eb330
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
mov dword [ebx], eax
add eax, dword [ebp - 0x48]
mov dword [ebx + 8], eax
jmp 0x6aed48
mov dword [esp], esi
call fcn.006eb380
mov edi, eax
jmp 0x6af9c9
xor esi, esi
mov eax, edx
jmp 0x6af79e
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x34]
jmp 0x6af6f1
mov dword [ebp - 0x4c], 0
jmp 0x6af57d
mov eax, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x44]
add eax, edi
jmp 0x6aed48
call fcn.006dfac0
mov esi, eax
mov ecx, ebx
mov ebx, esi
call fcn.00686d60
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x68]
test eax, eax
je 0x6afc26
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x5c]
test eax, eax
je 0x6afc38
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x50]
test eax, eax
je 0x6afc4a
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x6afc5c
mov dword [esp], eax
call fcn.006eb330
mov ecx, dword [ebp - 0x40]
call fcn.00686d60
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x6afc76
mov dword [esp], eax
call fcn.006eb330
mov eax, ebx
mov dword [esp], eax
call fcn.006eb560
mov eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x2c]
cmp eax, esi
mov ebx, eax
je 0x6afc9d
mov ecx, ebx
add ebx, 0xa0
call fcn.005f55f0
cmp ebx, esi
jne 0x6afc8c
call fcn.006ebba0
call fcn.006dfac0
call fcn.006dfac0
mov dword [esp], eax
call fcn.006eb560
mov ebx, dword [ebp - 0x4c]
cmp dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x2c]
mov esi, eax
je 0x6afcd2
mov ecx, ebx
add ebx, 0xa0
call fcn.005f55f0
cmp esi, ebx
jne 0x6afcc1
call fcn.006ebba0
mov ebx, eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x6afceb
mov dword [esp], eax
call fcn.006eb330
mov eax, ebx
jmp 0x6afcac
call fcn.006dfac0
mov ebx, eax
mov ecx, dword [ebp - 0x40]
call fcn.00686d60
jmp 0x6afcd9
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x50]
test eax, eax
je 0x6afd47
mov dword [esp], eax
call fcn.006eb330
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x6afcf6
mov dword [esp], eax
call fcn.006eb330
jmp 0x6afcf6
call fcn.006dfac0
call fcn.006dfac0
mov ebx, eax
jmp 0x6afc38
call fcn.006dfac0
mov ebx, eax
jmp 0x6afc26
call fcn.006dfac0
mov ebx, eax
jmp 0x6afc5c
call fcn.006dfac0
mov ebx, eax
jmp 0x6afc4a
call fcn.006dfac0
mov ebx, eax
jmp 0x6afc14
call fcn.006dfac0
mov ebx, eax
jmp 0x6afd35