Function at 0x6acff0
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 0x6ad32b
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 0x6adb3c
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 0x6ad338
test esi, esi
jle 0x6ad5b4
add edi, 0x1c
lea esi, [ebx + 0x1c]
jmp 0x6ad0df
test ebx, ebx
jne 0x6adaed
add ecx, dword [ebp - 0x2c]
mov dword [edi + 0x38], ecx
lea eax, [esi + 0x40]
lea ecx, [edi + 0x40]
mov dword [esp], eax
call fcn.006aec70
lea eax, [esi + 0x4c]
sub esp, 4
lea ecx, [edi + 0x4c]
mov dword [esp], eax
call fcn.006ae7d0
lea eax, [esi + 0x58]
sub esp, 4
lea ecx, [edi + 0x58]
mov dword [esp], eax
call fcn.006853c0
lea eax, [esi + 0x74]
sub esp, 4
lea ecx, [edi + 0x74]
add esi, 0xa0
add edi, 0xa0
mov dword [esp], eax
call fcn.006b8b60
mov eax, dword [esi - 0x20]
sub esp, 4
mov dword [edi - 0x20], eax
sub dword [ebp - 0x40], 1
je 0x6ad597
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.006b0080
lea eax, [esi + 0xc]
sub esp, 4
lea ecx, [edi + 0xc]
mov dword [esp], eax
call fcn.006853c0
lea eax, [esi + 0x28]
sub esp, 4
lea ecx, [edi + 0x28]
mov dword [esp], eax
call fcn.006af030
lea edx, [esi + 0x34]
lea eax, [edi + 0x34]
sub esp, 4
cmp edx, eax
je 0x6ad07f
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 0x6ad500
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x34], eax
sub eax, ecx
mov edx, eax
sar edx, 4
cmp ebx, edx
jbe 0x6ad071
test edx, edx
jne 0x6adb0d
add eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x38]
sub edx, eax
mov ebx, edx
sar ebx, 4
test ebx, ebx
je 0x6ad079
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 0x6ad07c
cmp dword [ebp - 0x4c], edi
mov esi, dword [ebp - 0x4c]
je 0x6ad320
mov eax, dword [edi + 0x90]
test eax, eax
je 0x6ad1e6
mov dword [esp], eax
call fcn.006e9880
mov ebx, dword [edi + 0x7c]
test ebx, ebx
je 0x6ad216
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 0x6ad207
mov dword [esp], eax
call fcn.006e9880
mov dword [esp], ebx
call fcn.006e9880
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
jne 0x6ad1f0
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 0x6ad259
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [edi + 0x68]
test eax, eax
je 0x6ad268
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x6ad277
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [edi + 0x50]
test eax, eax
je 0x6ad286
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [edi + 0x44]
test eax, eax
je 0x6ad295
mov dword [esp], eax
call fcn.006e9880
mov ebx, dword [edi + 0x30]
test ebx, ebx
je 0x6ad2c6
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 0x6ad2b7
mov dword [esp], eax
call fcn.006e9880
mov dword [esp], ebx
call fcn.006e9880
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
jne 0x6ad2a0
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 0x6ad303
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x6ad312
mov dword [esp], eax
call fcn.006e9880
add edi, 0xa0
cmp esi, edi
jne 0x6ad1d4
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 0x6ad3c1
jmp 0x6ad1c8
test ebx, ebx
jne 0x6adacd
add ecx, dword [ebp - 0x2c]
mov dword [edi + 0x54], ecx
lea eax, [esi + 0x40]
lea ecx, [edi + 0x5c]
mov dword [esp], eax
call fcn.006aec70
lea eax, [esi + 0x4c]
sub esp, 4
lea ecx, [edi + 0x68]
mov dword [esp], eax
call fcn.006ae7d0
lea eax, [esi + 0x58]
sub esp, 4
lea ecx, [edi + 0x74]
mov dword [esp], eax
call fcn.006853c0
lea eax, [esi + 0x74]
sub esp, 4
lea ecx, [edi + 0x90]
add esi, 0xa0
add edi, 0xa0
mov dword [esp], eax
call fcn.006b8b60
mov eax, dword [esi - 0x20]
sub esp, 4
mov dword [edi - 4], eax
sub dword [ebp - 0x3c], 1
je 0x6ad1c8
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.006b0080
lea eax, [esi + 0xc]
sub esp, 4
lea ecx, [edi + 0x28]
mov dword [esp], eax
call fcn.006853c0
lea eax, [esi + 0x28]
sub esp, 4
lea ecx, [edi + 0x44]
mov dword [esp], eax
call fcn.006af030
lea edx, [esi + 0x34]
lea eax, [edi + 0x50]
sub esp, 4
cmp edx, eax
je 0x6ad35e
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 0x6ad4b0
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x34], eax
sub eax, ecx
mov edx, eax
sar edx, 4
cmp ebx, edx
jbe 0x6ad350
test edx, edx
jne 0x6ada9e
add eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x38]
sub edx, eax
mov ebx, edx
sar ebx, 4
test ebx, ebx
je 0x6ad358
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 0x6ad35b
xor ecx, ecx
test ebx, ebx
mov eax, dword [ebp - 0x34]
je 0x6ad4e0
cmp ebx, 0xfffffff
ja 0x6ae282
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.006e98d0
test ebx, ebx
mov ecx, eax
jne 0x6ad570
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x6ad4f2
mov dword [esp], eax
mov dword [ebp - 0x30], ecx
call fcn.006e9880
mov ecx, dword [ebp - 0x30]
mov dword [edi + 0x50], ecx
add ecx, dword [ebp - 0x2c]
mov dword [edi + 0x58], ecx
jmp 0x6ad35b
xor ecx, ecx
test ebx, ebx
mov eax, dword [ebp - 0x34]
je 0x6ad52c
cmp ebx, 0xfffffff
ja 0x6ae282
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.006e98d0
test ebx, ebx
mov ecx, eax
jne 0x6ad54c
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x6ad53e
mov dword [esp], eax
mov dword [ebp - 0x30], ecx
call fcn.006e9880
mov ecx, dword [ebp - 0x30]
mov dword [edi + 0x34], ecx
add ecx, dword [ebp - 0x2c]
mov dword [edi + 0x3c], ecx
jmp 0x6ad07c
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 0x6ad52c
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 0x6ad4e0
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 0x6ae1d7
lea esi, [esi]
mov esi, dword [ebp - 0x2c]
test esi, esi
je 0x6ada5d
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 0x6ad644
cmp eax, 0xfffffff
ja 0x6ae1e4
mov dword [esp], ebx
call fcn.006e98d0
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 0x6ad690
mov ecx, eax
mov edx, esi
test ecx, ecx
je 0x6ad67a
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 0x6ad660
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.00684b20
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 0x6ada8f
cmp eax, 0x1f07c1f
ja 0x6ae2cf
mov dword [esp], ebx
call fcn.006e98d0
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 0x6ad797
nop
test edx, edx
je 0x6ad75f
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 0x6ad750
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 0x6ad7db
cmp eax, 0xfffffff
ja 0x6ae36f
mov dword [esp], esi
call fcn.006e98d0
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 0x6ad812
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 0x6ad85f
cmp eax, 0xaaaaaaa
ja 0x6ae3bc
mov dword [esp], ebx
call fcn.006e98d0
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 0x6ad8c5
mov ecx, eax
mov edx, esi
nop
lea esi, [esi]
test ecx, ecx
je 0x6ad8a6
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 0x6ad880
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 0x6ad910
cmp eax, 0x15555555
ja 0x6ae287
mov dword [esp], ebx
call fcn.006e98d0
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 0x6ad969
mov ecx, eax
mov edx, esi
lea esi, [esi]
test ecx, ecx
je 0x6ad944
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 0x6ad930
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.00684b20
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 0x6ada80
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 0x6ada42
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 0x6ad5d0
jmp 0x6ad320
mov dword [esp], esi
call fcn.006e98d0
mov edi, eax
jmp 0x6ada01
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x34]
jmp 0x6ad730
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 0x6ad473
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 0x6ad35b
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 0x6ad07c
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 0x6ad195
test eax, eax
je 0x6ae1cb
cmp eax, 0x1999999
ja 0x6ae282
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call fcn.006e98d0
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 0x6ae01f
mov esi, dword [ebp - 0x2c]
test esi, esi
je 0x6ae005
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 0x6adbe5
cmp eax, 0xfffffff
ja 0x6ae3b0
mov dword [esp], ebx
call fcn.006e98d0
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 0x6adc31
mov ecx, eax
mov edx, esi
test ecx, ecx
je 0x6adc1b
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 0x6adc01
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.00684b20
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 0x6ae1bc
cmp eax, 0x1f07c1f
ja 0x6ae38c
mov dword [esp], ebx
call fcn.006e98d0
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 0x6add32
nop
test edx, edx
je 0x6adcff
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 0x6adcf0
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 0x6ae1b3
cmp eax, 0xfffffff
ja 0x6ae398
mov dword [esp], ebx
call fcn.006e98d0
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 0x6addb0
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 0x6addfd
cmp eax, 0xaaaaaaa
ja 0x6ae374
mov dword [esp], ebx
call fcn.006e98d0
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 0x6ade65
mov ecx, eax
mov edx, esi
lea esi, [esi]
test ecx, ecx
je 0x6ade46
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 0x6ade20
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 0x6adeb0
cmp eax, 0x15555555
ja 0x6ae380
mov dword [esp], ebx
call fcn.006e98d0
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 0x6adf0b
mov ecx, eax
mov edx, esi
lea esi, [esi]
test ecx, ecx
je 0x6adee4
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 0x6aded0
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.00684b20
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 0x6ae1a4
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 0x6adfea
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 0x6adb73
mov eax, dword [ebp - 0x44]
mov edi, dword [eax + 4]
mov ebx, dword [eax]
cmp edi, ebx
je 0x6ae185
nop
mov eax, dword [ebx + 0x90]
test eax, eax
je 0x6ae042
mov dword [esp], eax
call fcn.006e9880
mov esi, dword [ebx + 0x7c]
test esi, esi
je 0x6ae076
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 0x6ae067
mov dword [esp], eax
call fcn.006e9880
mov dword [esp], esi
call fcn.006e9880
mov esi, dword [ebp - 0x2c]
test esi, esi
jne 0x6ae050
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 0x6ae0b9
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x6ae0c8
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [ebx + 0x5c]
test eax, eax
je 0x6ae0d7
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x6ae0e6
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x6ae0f5
mov dword [esp], eax
call fcn.006e9880
mov esi, dword [ebx + 0x30]
test esi, esi
je 0x6ae126
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 0x6ae117
mov dword [esp], eax
call fcn.006e9880
mov dword [esp], esi
call fcn.006e9880
mov esi, dword [ebp - 0x2c]
test esi, esi
jne 0x6ae100
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 0x6ae163
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x6ae172
mov dword [esp], eax
call fcn.006e9880
add ebx, 0xa0
cmp edi, ebx
jne 0x6ae030
mov eax, dword [ebp - 0x44]
mov ebx, dword [eax]
test ebx, ebx
je 0x6ae191
mov dword [esp], ebx
call fcn.006e9880
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 0x6ad328
mov dword [esp], esi
call fcn.006e98d0
mov edi, eax
jmp 0x6adfa9
xor esi, esi
mov eax, edx
jmp 0x6add7e
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x34]
jmp 0x6adcd1
mov dword [ebp - 0x4c], 0
jmp 0x6adb5d
mov eax, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x44]
add eax, edi
jmp 0x6ad328
call fcn.006de0a0
mov esi, eax
mov ecx, ebx
mov ebx, esi
call fcn.00685340
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x68]
test eax, eax
je 0x6ae206
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x5c]
test eax, eax
je 0x6ae218
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x50]
test eax, eax
je 0x6ae22a
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x6ae23c
mov dword [esp], eax
call fcn.006e9880
mov ecx, dword [ebp - 0x40]
call fcn.00685340
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x6ae256
mov dword [esp], eax
call fcn.006e9880
mov eax, ebx
mov dword [esp], eax
call fcn.006e9ab0
mov eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x2c]
cmp eax, esi
mov ebx, eax
je 0x6ae27d
mov ecx, ebx
add ebx, 0xa0
call fcn.005f3d90
cmp ebx, esi
jne 0x6ae26c
call fcn.006ea0f0
call fcn.006de0a0
call fcn.006de0a0
mov dword [esp], eax
call fcn.006e9ab0
mov ebx, dword [ebp - 0x4c]
cmp dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x2c]
mov esi, eax
je 0x6ae2b2
mov ecx, ebx
add ebx, 0xa0
call fcn.005f3d90
cmp esi, ebx
jne 0x6ae2a1
call fcn.006ea0f0
mov ebx, eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x6ae2cb
mov dword [esp], eax
call fcn.006e9880
mov eax, ebx
jmp 0x6ae28c
call fcn.006de0a0
mov ebx, eax
mov ecx, dword [ebp - 0x40]
call fcn.00685340
jmp 0x6ae2b9
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x50]
test eax, eax
je 0x6ae327
mov dword [esp], eax
call fcn.006e9880
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x6ae2d6
mov dword [esp], eax
call fcn.006e9880
jmp 0x6ae2d6
call fcn.006de0a0
call fcn.006de0a0
mov ebx, eax
jmp 0x6ae218
call fcn.006de0a0
mov ebx, eax
jmp 0x6ae206
call fcn.006de0a0
mov ebx, eax
jmp 0x6ae23c
call fcn.006de0a0
mov ebx, eax
jmp 0x6ae22a
call fcn.006de0a0
mov ebx, eax
jmp 0x6ae1f4
call fcn.006de0a0
mov ebx, eax
jmp 0x6ae315