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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x2dc
push ebx
xor edx, edx
push esi
mov esi, ecx
mov eax, dword [esi + 0xe0]
mov ecx, dword [eax]
mov ebx, dword [esi + 0xdc]
mov dword [ebp + 0x40], edx
mov dword [ebp + 0x28], edx
mov dword [ebp + 0x34], edx
mov dword [ebp + 0xc], edx
push edi
mov dword [ebp + 0x68], ebx
mov edx, ecx
mov edi, ecx
xor ebx, ebx
and edi, 0xfffff
inc ebx
and edx, 0xfff00000
mov ecx, 0x20100000
cmp edx, ecx
mov dword [ebp + 0x64], esi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], 2
mov dword [ebp + 0x18], 3
jne 0x616834
push ebx
push 2
lea ecx, [ebp + 0x50]
push ecx
push eax
mov dword [ebp + 0x20], eax
mov eax, edi
and eax, 0xfffff
or eax, 0x20000000
push eax
mov ecx, esi
call fcn.006148a7
test eax, eax
mov dword [ebp + 0x1c], eax
je 0x61685f
and dword [ebp + 0x30], 0
jmp 0x61686e
cmp edx, 0x20000000
jne 0x61686b
push ebx
push 2
lea edx, [ebp + 0x50]
push edx
push eax
mov dword [ebp + 0x1c], eax
mov eax, edi
and eax, 0xfffff
or eax, ecx
push eax
mov ecx, esi
call fcn.006148a7
test eax, eax
mov dword [ebp + 0x20], eax
jne 0x616866
mov eax, ebx
jmp 0x617e99
mov dword [ebp + 0x30], ebx
jmp 0x61686e
mov dword [ebp + 0x28], ebx
xor edx, edx
cmp dword [ebp + 0x28], edx
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x38], edx
jne 0x616b04
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x14]
mov eax, dword [eax + 8]
mov esi, dword [esi + 0x10]
lea edx, [eax + edi*4]
mov edi, dword [eax]
mov edi, dword [ecx + edi*4]
mov edi, dword [edi + 4]
mov ebx, dword [esi + edi*4]
mov edi, dword [edx]
mov edi, dword [ecx + edi*4]
mov edi, dword [edi + 4]
mov esi, dword [esi + edi*4]
mov esi, dword [esi + 4]
mov edi, 0x100
and esi, edi
je 0x6168b5
mov dword [ebp + 0x58], eax
jmp 0x6168c3
test dword [ebx + 4], edi
je 0x61750d
mov dword [ebp + 0x58], edx
mov edx, eax
test esi, esi
mov eax, dword [ebp + 0x20]
mov edi, dword [eax + 8]
mov eax, dword [ebp + 0x5c]
lea eax, [edi + eax*4]
je 0x6168d8
mov dword [ebp + 0x44], edi
jmp 0x6168e7
test byte [ebx + 5], 1
je 0x61750d
mov dword [ebp + 0x44], eax
mov eax, edi
cmp dword [ebp + 0x30], 0
je 0x61691d
mov esi, dword [ebp + 0x64]
mov edi, dword [esi + 0x88]
mov esi, dword [ebp + 0x44]
mov esi, dword [esi]
mov esi, dword [ecx + esi*4]
cmp dword [esi + 4], edi
jne 0x61750d
mov esi, dword [ebp + 0x58]
mov esi, dword [esi]
mov ebx, dword [ecx + esi*4]
cmp dword [ebx + 4], edi
je 0x61694b
mov dword [ebp + 0x38], 1
jmp 0x61694b
mov esi, dword [ebp + 0x44]
mov esi, dword [esi]
mov ebx, dword [ecx + esi*4]
mov esi, dword [ebp + 0x64]
mov edi, dword [esi + 0x88]
cmp dword [ebx + 4], edi
je 0x61693a
mov dword [ebp + 0x38], 1
mov esi, dword [ebp + 0x58]
mov esi, dword [esi]
mov esi, dword [ecx + esi*4]
cmp dword [esi + 4], edi
jne 0x61750d
mov esi, dword [ebx + 0x3c]
test esi, 0xffff03ff
mov dword [ebp + 0x24], esi
jne 0x61750d
and dword [ebp + 0x60], 0
cmp dword [ebp + 0x5c], 0
jbe 0x616aee
mov esi, dword [ebp + 0x58]
mov edi, dword [ebp + 0x44]
sub esi, edx
sub edi, edx
mov dword [ebp + 0x70], eax
sub dword [ebp + 0x70], edx
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x3c], edi
jmp 0x616986
mov esi, dword [ebp + 0x48]
mov eax, dword [edx + esi]
mov esi, dword [edx]
mov esi, dword [ecx + esi*4]
mov edi, dword [ebp + 0x64]
mov ebx, dword [esi + 4]
mov edi, dword [edi + 0x10]
mov edi, dword [edi + ebx*4]
test byte [edi + 5], 1
mov eax, dword [ecx + eax*4]
je 0x61750d
mov edi, dword [eax + 0x54]
cmp edi, dword [ebp + 0x50]
ja 0x61750d
cmp dword [ebp + 0x30], 0
je 0x616a04
mov ebx, dword [ebp + 0x64]
cmp edi, dword [ebx + 0xdc]
ja 0x61750d
mov edi, dword [ebp + 0x24]
cmp dword [eax + 0x3c], edi
jne 0x61750d
xor ebx, ebx
cmp dword [ebp + 0x40], ebx
jbe 0x6169ea
mov edi, dword [eax + 0x44]
cmp edi, dword [ebp + ebx*4 + 0xc]
je 0x6169ea
inc ebx
cmp ebx, dword [ebp + 0x40]
jb 0x6169db
cmp ebx, dword [ebp + 0x40]
jne 0x616a10
cmp dword [ebp + 0x38], 0
jne 0x616a10
mov edi, dword [ebp + 0x40]
mov eax, dword [eax + 0x44]
inc dword [ebp + 0x40]
mov dword [ebp + edi*4 + 0xc], eax
jmp 0x616a10
mov edi, dword [ebp + 0x68]
cmp dword [eax + 0x44], edi
jne 0x61750d
fld qword [esi + 0x20]
fcomp qword [0x699e80]
fnstsw ax
test ah, 0x44
jp 0x61750d
mov eax, dword [ebp + 0x3c]
mov eax, dword [edx + eax]
mov esi, dword [ebp + 0x70]
mov eax, dword [ecx + eax*4]
mov esi, dword [edx + esi]
mov edi, dword [eax + 0x3c]
test edi, 0xffff03ff
mov esi, dword [ecx + esi*4]
mov dword [ebp + 0x54], esi
jne 0x61750d
mov ebx, dword [esi + 4]
mov esi, dword [ebp + 0x64]
mov esi, dword [esi + 0x10]
mov esi, dword [esi + ebx*4]
test byte [esi + 5], 1
je 0x61750d
cmp dword [ebp + 0x30], 0
jne 0x616aad
mov esi, dword [eax + 0x54]
mov ebx, dword [ebp + 0x64]
cmp esi, dword [ebx + 0xdc]
ja 0x61750d
cmp edi, dword [ebp + 0x24]
jne 0x61750d
mov ebx, dword [ebp + 0x40]
xor esi, esi
test ebx, ebx
jbe 0x616a96
mov edi, dword [eax + 0x44]
cmp edi, dword [ebp + esi*4 + 0xc]
je 0x616a96
inc esi
cmp esi, ebx
jb 0x616a8b
cmp esi, ebx
jne 0x616ac5
cmp dword [ebp + 0x38], 0
jne 0x616ac5
mov eax, dword [eax + 0x44]
mov dword [ebp + ebx*4 + 0xc], eax
inc ebx
mov dword [ebp + 0x40], ebx
jmp 0x616ac5
mov esi, dword [eax + 0x44]
cmp esi, dword [ebp + 0x68]
jne 0x61750d
mov eax, dword [eax + 0x54]
cmp eax, dword [ebp + 0x50]
ja 0x61750d
mov eax, dword [ebp + 0x54]
fld qword [eax + 0x20]
fcomp qword [0x692b10]
fnstsw ax
test ah, 0x44
jp 0x61750d
inc dword [ebp + 0x60]
mov eax, dword [ebp + 0x60]
add edx, 4
cmp eax, dword [ebp + 0x5c]
jb 0x616983
cmp dword [ebp + 0x30], 0
je 0x616aff
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], eax
jmp 0x617991
mov eax, dword [ebp + 0x44]
jmp 0x616af7
mov esi, dword [esi + 0xe0]
mov eax, dword [esi]
mov ecx, eax
mov edi, 0xfff00000
and ecx, edi
cmp ecx, 0xf0d00000
mov dword [ebp + 0x58], esi
jne 0x616c8b
and eax, 0xfffff
mov ecx, eax
mov dword [ebp + 0x5c], ecx
neg ecx
shl eax, 2
shl ecx, 2
mov dword [ebp + 0x48], ecx
mov ecx, eax
mov dword [ebp + 0x60], edx
mov dword [ebp + 0x74], edx
mov dword [ebp + 0x54], ecx
and dword [ebp + 0x50], 0
cmp dword [ebp + 0x5c], 0
jbe 0x616be2
mov eax, dword [ebp + 0x64]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp + 0x58]
mov eax, dword [eax + 8]
mov esi, dword [ebp + 0x74]
add esi, eax
add eax, ecx
mov dword [ebp + 0x70], esi
mov dword [ebp + 0x68], eax
mov ecx, dword [ebp + 0x70]
mov esi, dword [ecx]
mov ecx, dword [edx + esi*4]
test byte [ecx + 0x3e], 8
mov eax, dword [eax]
mov edi, dword [edx + eax*4]
je 0x616b83
test byte [ecx], 8
jmp 0x616b86
test byte [ecx], 4
je 0x616be2
mov ebx, dword [ebp + 0x64]
mov eax, dword [edi + 4]
mov ebx, dword [ebx + 0x10]
mov eax, dword [ebx + eax*4]
test byte [eax + 5], 1
je 0x616be2
fld qword [edi + 0x20]
fcomp qword [0x699e80]
fnstsw ax
test ah, 0x44
jp 0x616be2
cmp dword [edi + 8], 0xffffffff
jne 0x616be2
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 0x64]
cmp eax, dword [ecx + 0x88]
mov edi, dword [ebp + 0x50]
mov dword [ebp + edi*4 - 4], esi
je 0x616bcc
mov dword [ebp + 0x38], 1
mov eax, dword [ebp + 0x68]
add dword [ebp + 0x70], 4
inc edi
add eax, 4
cmp edi, dword [ebp + 0x5c]
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x68], eax
jb 0x616b6b
mov eax, dword [ebp + 0x5c]
cmp dword [ebp + 0x50], eax
je 0x616c08
mov ecx, dword [ebp + 0x54]
add ecx, dword [ebp + 0x48]
inc dword [ebp + 0x60]
shl eax, 2
add dword [ebp + 0x74], eax
cmp dword [ebp + 0x60], 2
mov dword [ebp + 0x54], ecx
jb 0x616b44
jmp 0x616c69
test eax, eax
jbe 0x616c69
mov ecx, dword [ebp + 0x64]
mov edi, dword [ecx + 0x14]
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x58]
imul ecx, eax
mov edx, dword [edx + 8]
lea edx, [edx + ecx*4]
mov ecx, dword [edx]
mov ecx, dword [edi + ecx*4]
cmp dword [ecx + 0x38], 0xffffffff
jne 0x616c5c
xor esi, esi
cmp dword [ebp + 0x40], esi
jbe 0x616c42
mov ebx, dword [ecx + 0x44]
cmp ebx, dword [ebp + esi*4 + 0xc]
je 0x616c42
inc esi
cmp esi, dword [ebp + 0x40]
jb 0x616c36
cmp esi, dword [ebp + 0x40]
jne 0x616c63
cmp dword [ebp + 0x38], 0
jne 0x616c63
mov esi, dword [ebp + 0x40]
mov ecx, dword [ecx + 0x44]
inc dword [ebp + 0x40]
mov dword [ebp + esi*4 + 0xc], ecx
jmp 0x616c63
mov dword [ebp + 0x38], 1
add edx, 4
dec eax
jne 0x616c21
cmp dword [ebp + 0x60], 2
je 0x61750d
mov eax, dword [ebp + 0x58]
mov dword [ebp - 0x84], eax
mov dword [ebp + 0x34], 1
lea eax, [ebp - 4]
jmp 0x616af7
mov ecx, 0xfffff
and eax, ecx
mov dword [ebp + 0x5c], eax
mov eax, dword [esi]
mov esi, eax
and esi, ecx
cmp esi, dword [ebp + 0x5c]
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x60], esi
ja 0x616ff0
and eax, edi
cmp eax, 0x30000000
jne 0x616ff0
mov dword [ebp + 0x70], edx
and dword [ebp + 0x74], 0
xor ecx, ecx
push 0x28
pop ecx
or eax, 0xffffffff
lea edi, [ebp - 0x44]
lea edi, [ebp - 0x1c4]
rep stosd dword es:[edi], eax
push 0x28
xor ebx, ebx
pop ecx
lea edi, [ebp - 0x264]
lea esi, [ebp - 0x84]
rep stosd dword es:[edi], eax
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x4c], ebx
cmp dword [ebp + 0x74], 0
je 0x616cfb
xor ecx, ecx
inc ecx
sub ecx, dword [ebp + 0x4c]
jmp 0x616cfe
mov ecx, dword [ebp + 0x4c]
mov eax, dword [ebp + 0x58]
mov esi, dword [eax + 8]
mov edi, dword [ebp + 0x64]
mov ecx, dword [ecx*4 + 0x6ca584]
cmp ecx, 0x10
mov edi, dword [edi + 0x14]
lea edx, [esi + ebx*4]
mov eax, dword [edx]
mov edi, dword [edi + eax*4]
jae 0x616d89
mov eax, dword [edi + 0x44]
cmp eax, 0xffffffff
je 0x616dcf
shl ecx, 5
push 0
mov esi, ecx
push dword [esi + 0x6ca590]
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp + 0xc]
push ecx
push dword [ebp + 0x60]
mov ecx, dword [ebp + 0x64]
push edx
mov edx, dword [ecx + 0x18]
push dword [edx + eax*4]
call fcn.0060e110
test eax, eax
jne 0x616dcf
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx + 0x18]
push eax
push dword [ebp + 0x5c]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x264]
push eax
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [esi + 0x6ca578]
push eax
mov eax, dword [edi + 0x44]
push dword [edx + eax*4]
call fcn.0060e2b9
mov dword [ebp + 0x6c], eax
jmp 0x616db7
sub ecx, 0x10
xor edi, edi
shl ecx, 4
lea ecx, [ebp + ecx - 0x1c4]
mov edx, dword [ebp + edi*4 + 0xc]
cmp edx, dword [ebp + 0x60]
jae 0x616dab
lea eax, [ebx + edx]
mov eax, dword [esi + eax*4]
mov dword [ecx], eax
jmp 0x616dae
or dword [ecx], 0xffffffff
inc edi
add ecx, 4
cmp edi, 4
jb 0x616d98
cmp dword [ebp + 0x6c], 1
je 0x616dd6
inc dword [ebp + 0x4c]
add ebx, dword [ebp + 0x60]
cmp dword [ebp + 0x4c], 3
jb 0x616ced
jmp 0x616dd6
mov dword [ebp + 0x6c], 1
and dword [ebp + 0x4c], 0
and dword [ebp + 0x68], 0
cmp dword [ebp + 0x74], 0
je 0x616dec
xor ecx, ecx
inc ecx
sub ecx, dword [ebp + 0x4c]
jmp 0x616def
mov ecx, dword [ebp + 0x4c]
cmp dword [ecx*4 + 0x6ca584], 0x10
jb 0x616e56
and dword [ebp + 0x50], 0
cmp dword [ebp + 0x44], 0
jbe 0x616e56
xor edi, edi
cmp dword [ebp + 0x60], edi
jbe 0x616e4b
mov eax, dword [ebp + 0x50]
mov edx, dword [ebp + eax*4 - 0x44]
mov ebx, dword [edx + 0xc]
and dword [ebp + 0x54], 0
test ebx, ebx
jbe 0x616e3c
mov eax, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x58]
mov ecx, dword [ecx + 8]
add eax, edi
mov esi, dword [ecx + eax*4]
mov ecx, dword [edx + 0x10]
cmp esi, dword [ecx]
je 0x616e44
inc dword [ebp + 0x54]
add ecx, 4
cmp dword [ebp + 0x54], ebx
jb 0x616e2d
inc edi
cmp edi, dword [ebp + 0x60]
jb 0x616e14
jmp 0x616e4b
mov dword [ebp + 0x6c], 1
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x44]
jb 0x616e03
mov eax, dword [ebp + 0x60]
inc dword [ebp + 0x4c]
add dword [ebp + 0x68], eax
cmp dword [ebp + 0x4c], 3
jb 0x616dde
xor ebx, ebx
cmp dword [ebp + 0x6c], ebx
jne 0x616f64
cmp dword [ebp + 0x70], ebx
jne 0x616f86
xor eax, eax
cmp dword [ebp + 0x44], ebx
mov dword [ebp + 0x68], eax
jbe 0x616f86
mov eax, dword [ebp + eax*4 - 0x44]
mov eax, dword [eax + 0xc]
cmp eax, ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x2c], eax
jbe 0x616f4f
mov ecx, dword [ebp + 0x64]
mov eax, dword [ecx + 0xc]
cmp eax, ebx
jbe 0x616f40
mov ecx, dword [ecx + 0x18]
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x3c], eax
mov ecx, dword [ecx]
cmp ecx, ebx
je 0x616f2e
cmp dword [ecx], ebx
je 0x616f2e
mov edi, dword [ecx + 4]
cmp edi, ebx
mov dword [ebp + 0x54], ebx
jbe 0x616f03
mov eax, dword [ebp + 0x68]
mov eax, dword [ebp + eax*4 - 0x44]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp + 0x50]
mov esi, dword [eax + edx*4]
mov edx, dword [ecx + 8]
mov eax, edi
mov edi, dword [edx]
cmp edi, esi
je 0x616ef6
mov ebx, dword [ebp + 0x64]
mov ebx, dword [ebx + 0x14]
mov edi, dword [ebx + edi*4]
xor ebx, ebx
cmp dword [edi + 0x38], esi
jne 0x616efd
mov dword [ebp + 0x54], 1
add edx, 4
dec eax
jne 0x616ee0
cmp ecx, dword [ebp + 0x58]
jne 0x616f0c
xor eax, eax
jmp 0x616f0f
mov eax, dword [ebp + 0x54]
cmp eax, ebx
je 0x616f2e
xor edx, edx
cmp ecx, dword [ebp + edx*4 - 0x44]
jne 0x616f1d
xor eax, eax
inc edx
cmp edx, dword [ebp + 0x44]
jb 0x616f15
cmp eax, ebx
je 0x616f2e
mov dword [ebp + 0x6c], 1
mov ecx, dword [ebp + 0x4c]
add ecx, 4
dec dword [ebp + 0x3c]
mov dword [ebp + 0x4c], ecx
jne 0x616eb7
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x2c]
jb 0x616ea0
mov eax, dword [ebp + 0x68]
inc eax
cmp eax, dword [ebp + 0x44]
mov dword [ebp + 0x68], eax
jb 0x616e8b
cmp dword [ebp + 0x6c], ebx
je 0x616f86
inc dword [ebp + 0x74]
cmp dword [ebp + 0x74], 1
jb 0x616cbe
cmp dword [ebp + 0x6c], 0
je 0x616f86
inc dword [ebp + 0x70]
cmp dword [ebp + 0x70], 1
jb 0x616cba
jmp 0x616fe4
mov edx, dword [ebp + 0x44]
mov eax, edx
shl eax, 2
mov ecx, eax
mov ebx, ecx
shr ecx, 2
lea esi, [ebp - 0x44]
lea edi, [ebp - 0x84]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x58]
inc edx
mov dword [ebp + eax - 0x84], ecx
mov dword [ebp + 0x34], edx
xor eax, eax
mov ecx, dword [ebp + eax - 0x1c4]
cmp ecx, 0xffffffff
jne 0x616fcf
mov ecx, dword [ebp + eax - 0x264]
cmp ecx, 0xffffffff
je 0x616fd6
mov dword [ebp + eax - 0x124], ecx
add eax, 4
cmp eax, 0xa0
jb 0x616fb7
and dword [ebp + 0x6c], 0
mov eax, dword [ebp + 0x6c]
cmp eax, 1
jne 0x61726e
mov eax, dword [ebp + 0x64]
mov eax, dword [eax + 0xe0]
mov dword [ebp + 0x44], eax
mov eax, dword [eax]
mov ecx, eax
and ecx, 0xfffff
cmp ecx, dword [ebp + 0x5c]
mov dword [ebp + 0x60], ecx
ja 0x61701a
and eax, 0xfff00000
cmp eax, 0x30000000
je 0x617022
xor eax, eax
inc eax
jmp 0x61726a
mov eax, dword [ebp + 0x34]
and dword [ebp + 0x50], 0
shl eax, 2
mov dword [ebp + 0x2c], eax
and dword [ebp + 0x4c], 0
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
shr ecx, 2
lea esi, [ebp - 0x84]
lea edi, [ebp - 0x44]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x28
pop ecx
or eax, 0xffffffff
lea edi, [ebp - 0x264]
rep stosd dword es:[edi], eax
push 0x28
pop ecx
lea edi, [ebp - 0x1c4]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x34]
xor ebx, ebx
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x74], ebx
cmp dword [ebp + 0x4c], 0
je 0x617082
xor ecx, ecx
inc ecx
sub ecx, dword [ebp + 0x74]
jmp 0x617085
mov ecx, dword [ebp + 0x74]
mov eax, dword [ebp + 0x44]
mov esi, dword [eax + 8]
mov edi, dword [ebp + 0x64]
mov ecx, dword [ecx*4 + 0x6ca6e4]
cmp ecx, 0x10
mov edi, dword [edi + 0x14]
lea edx, [esi + ebx*4]
mov eax, dword [edx]
mov edi, dword [edi + eax*4]
jae 0x617110
mov eax, dword [edi + 0x44]
cmp eax, 0xffffffff
je 0x617155
shl ecx, 5
push 0
mov esi, ecx
push dword [esi + 0x6ca6f0]
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp + 0xc]
push ecx
push dword [ebp + 0x60]
mov ecx, dword [ebp + 0x64]
push edx
mov edx, dword [ecx + 0x18]
push dword [edx + eax*4]
call fcn.0060e110
test eax, eax
jne 0x617155
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx + 0x18]
push eax
push dword [ebp + 0x5c]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [esi + 0x6ca6d8]
push eax
mov eax, dword [edi + 0x44]
push dword [edx + eax*4]
call fcn.0060e2b9
mov dword [ebp + 0x6c], eax
jmp 0x61713d
sub ecx, 0x10
xor eax, eax
shl ecx, 4
lea ecx, [ebp + ecx - 0x264]
mov edx, dword [ebp + eax*4 + 0xc]
cmp edx, dword [ebp + 0x60]
jae 0x617131
add edx, ebx
mov edx, dword [esi + edx*4]
mov dword [ecx], edx
jmp 0x617134
or dword [ecx], 0xffffffff
inc eax
add ecx, 4
cmp eax, 4
jb 0x61711f
cmp dword [ebp + 0x6c], 1
je 0x61715c
inc dword [ebp + 0x74]
add ebx, dword [ebp + 0x60]
cmp dword [ebp + 0x74], 3
jb 0x617074
jmp 0x61715c
mov dword [ebp + 0x6c], 1
xor eax, eax
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x54], eax
cmp dword [ebp + 0x4c], eax
je 0x617171
xor ecx, ecx
inc ecx
sub ecx, dword [ebp + 0x74]
jmp 0x617174
mov ecx, dword [ebp + 0x74]
cmp dword [ecx*4 + 0x6ca6e4], 0x10
jb 0x6171da
cmp dword [ebp + 0x58], eax
mov dword [ebp + 0x70], eax
jbe 0x6171da
xor edi, edi
cmp dword [ebp + 0x60], eax
jbe 0x6171cf
mov ecx, dword [ebp + 0x70]
mov edx, dword [ebp + ecx*4 - 0x44]
mov ebx, dword [edx + 0xc]
cmp ebx, eax
mov dword [ebp + 0x68], eax
jbe 0x6171c0
mov ecx, dword [ebp + 0x54]
mov esi, dword [ebp + 0x44]
mov esi, dword [esi + 8]
add ecx, edi
mov esi, dword [esi + ecx*4]
mov ecx, dword [edx + 0x10]
cmp esi, dword [ecx]
je 0x6171c8
inc dword [ebp + 0x68]
add ecx, 4
xor eax, eax
cmp dword [ebp + 0x68], ebx
jb 0x6171af
inc edi
cmp edi, dword [ebp + 0x60]
jb 0x617197
jmp 0x6171cf
mov dword [ebp + 0x6c], 1
inc dword [ebp + 0x70]
mov ecx, dword [ebp + 0x70]
cmp ecx, dword [ebp + 0x58]
jb 0x617186
mov ecx, dword [ebp + 0x60]
inc dword [ebp + 0x74]
add dword [ebp + 0x54], ecx
cmp dword [ebp + 0x74], 3
jb 0x617164
cmp dword [ebp + 0x6c], eax
jne 0x6174b1
cmp dword [ebp + 0x50], eax
jne 0x617209
xor ebx, ebx
cmp dword [ebp + 0x58], eax
mov dword [ebp + 0x54], ebx
ja 0x6173d2
mov edx, dword [ebp + 0x58]
mov eax, edx
shl eax, 2
mov ecx, eax
mov ebx, ecx
shr ecx, 2
lea esi, [ebp - 0x44]
lea edi, [ebp - 0x84]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x44]
inc edx
mov dword [ebp + eax - 0x84], ecx
mov dword [ebp + 0x34], edx
xor eax, eax
mov ecx, dword [ebp + eax - 0x264]
cmp ecx, 0xffffffff
jne 0x617252
mov ecx, dword [ebp + eax - 0x1c4]
cmp ecx, 0xffffffff
je 0x617259
mov dword [ebp + eax - 0x124], ecx
add eax, 4
cmp eax, 0xa0
jb 0x61723a
and dword [ebp + 0x6c], 0
mov eax, dword [ebp + 0x6c]
and dword [ebp + 0x48], 0
xor edx, edx
cmp eax, edx
jne 0x6174da
cmp dword [ebp + 0x5c], edx
mov dword [ebp + 0x70], edx
jbe 0x6173c5
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp + 0x70]
shl eax, 2
mov edx, dword [ebp + eax - 0x124]
mov esi, dword [ecx + edx*4]
mov edx, dword [ebp + eax - 0x114]
mov edi, dword [ebp + eax - 0x104]
cmp edi, dword [ebp + eax - 0xd4]
mov edx, dword [ecx + edx*4]
mov dword [ebp + 0x3c], edx
jne 0x61750d
mov ebx, dword [ebp + eax - 0xf4]
cmp ebx, dword [ebp + eax - 0xc4]
jne 0x61750d
mov edx, dword [ebp + eax - 0xe4]
cmp edx, dword [ebp + eax - 0xb4]
jne 0x61750d
cmp edi, ebx
jne 0x61750d
mov eax, dword [ebp + 0x64]
mov eax, dword [eax + 0x10]
mov ebx, dword [esi + 4]
mov ebx, dword [eax + ebx*4]
test byte [ebx + 5], 1
mov edx, dword [ecx + edx*4]
je 0x61750d
mov ebx, dword [ebp + 0x3c]
mov ebx, dword [ebx + 4]
mov ebx, dword [eax + ebx*4]
test byte [ebx + 5], 1
je 0x61750d
mov ebx, dword [edx + 4]
mov eax, dword [eax + ebx*4]
test byte [eax + 5], 1
je 0x61750d
fld qword [esi + 0x20]
fcomp qword [0x699e80]
fnstsw ax
test ah, 0x44
jp 0x61750d
xor eax, eax
cmp dword [ebp + 0x48], eax
sete al
lea eax, [eax + eax - 1]
mov dword [ebp + 0x2c], eax
fild dword [ebp + 0x2c]
mov eax, dword [ebp + 0x3c]
fcomp qword [eax + 0x20]
fnstsw ax
test ah, 0x44
jp 0x61750d
fld qword [edx + 0x20]
fcomp qword [0x692b10]
fnstsw ax
test ah, 0x44
jp 0x61750d
mov edi, dword [ecx + edi*4]
mov eax, dword [edi + 4]
mov edx, dword [ebp + 0x64]
cmp eax, dword [edx + 0x88]
je 0x61738a
mov dword [ebp + 0x38], 1
mov esi, dword [ebp + 0x40]
xor eax, eax
test esi, esi
jbe 0x6173a1
mov edx, dword [edi + 0x44]
cmp edx, dword [ebp + eax*4 + 0xc]
je 0x6173a1
inc eax
cmp eax, esi
jb 0x617396
cmp eax, esi
jne 0x6173b6
cmp dword [ebp + 0x38], 0
jne 0x6173b6
mov eax, dword [edi + 0x44]
mov dword [ebp + esi*4 + 0xc], eax
inc esi
mov dword [ebp + 0x40], esi
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [ebp + 0x5c]
jb 0x61728a
lea eax, [ebp - 0x104]
jmp 0x616af7
xor eax, eax
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + ebx*4 - 0x44]
mov eax, dword [eax + 0xc]
test eax, eax
mov dword [ebp + 0x48], eax
jbe 0x61749a
mov eax, dword [ebp + 0x64]
mov eax, dword [eax + 0xc]
test eax, eax
jbe 0x61748b
mov ecx, dword [ebp + 0x64]
mov ecx, dword [ecx + 0x18]
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax]
test ecx, ecx
je 0x61747e
cmp dword [ecx], 0
je 0x61747e
mov edi, dword [ecx + 4]
and dword [ebp + 0x74], 0
test edi, edi
jbe 0x617450
mov eax, dword [ebp + ebx*4 - 0x44]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp + 0x70]
mov esi, dword [eax + edx*4]
mov edx, dword [ecx + 8]
mov eax, edi
mov edi, dword [edx]
cmp edi, esi
je 0x617443
mov ebx, dword [ebp + 0x64]
mov ebx, dword [ebx + 0x14]
mov edi, dword [ebx + edi*4]
cmp dword [edi + 0x38], esi
mov ebx, dword [ebp + 0x54]
jne 0x61744a
mov dword [ebp + 0x74], 1
add edx, 4
dec eax
jne 0x61742c
cmp ecx, dword [ebp + 0x44]
jne 0x617459
and dword [ebp + 0x74], 0
cmp dword [ebp + 0x74], 0
je 0x61747e
xor edx, edx
cmp ecx, dword [ebp + edx*4 - 0x44]
jne 0x61746b
and dword [ebp + 0x74], 0
inc edx
cmp edx, dword [ebp + 0x58]
jb 0x617461
cmp dword [ebp + 0x74], 0
je 0x61747e
mov dword [ebp + 0x6c], 1
add dword [ebp + 0x68], 4
dec dword [ebp + 0x3c]
jne 0x617401
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [ebp + 0x48]
jb 0x6173e7
inc ebx
cmp ebx, dword [ebp + 0x58]
mov dword [ebp + 0x54], ebx
jb 0x6173d0
cmp dword [ebp + 0x6c], 0
je 0x617209
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 1
jb 0x617033
cmp dword [ebp + 0x6c], 0
je 0x617209
inc dword [ebp + 0x50]
cmp dword [ebp + 0x50], 1
jb 0x61702f
jmp 0x617267
cmp eax, 1
jne 0x617e99
mov eax, dword [ebp + 0x64]
mov eax, dword [eax + 0xe0]
mov dword [ebp + 0x44], eax
mov eax, dword [eax]
mov ecx, eax
and ecx, 0xfffff
cmp ecx, dword [ebp + 0x5c]
mov dword [ebp + 0x60], ecx
ja 0x61750d
and eax, 0xfff00000
cmp eax, 0x30000000
je 0x617515
xor eax, eax
inc eax
jmp 0x617e99
mov dword [ebp + 0x50], edx
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x34]
mov ecx, edx
shl ecx, 2
mov eax, ecx
shr ecx, 2
lea esi, [ebp - 0x84]
lea edi, [ebp - 0x44]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x28
pop ecx
or eax, 0xffffffff
lea edi, [ebp - 0x264]
rep stosd dword es:[edi], eax
push 0x28
xor ebx, ebx
pop ecx
lea edi, [ebp - 0x1c4]
rep stosd dword es:[edi], eax
mov dword [ebp + 0x58], edx
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x74], ebx
cmp dword [ebp + 0x4c], 0
je 0x61756d
xor ecx, ecx
inc ecx
sub ecx, dword [ebp + 0x74]
jmp 0x617570
mov ecx, dword [ebp + 0x74]
mov eax, dword [ebp + 0x44]
mov esi, dword [eax + 8]
mov edi, dword [ebp + 0x64]
mov ecx, dword [ecx*4 + 0x6ca624]
cmp ecx, 0x10
mov edi, dword [edi + 0x14]
lea edx, [esi + ebx*4]
mov eax, dword [edx]
mov edi, dword [edi + eax*4]
jae 0x6175fb
mov eax, dword [edi + 0x44]
cmp eax, 0xffffffff
je 0x617640
shl ecx, 5
push 0
mov esi, ecx
push dword [esi + 0x6ca630]
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp + 0xc]
push ecx
push dword [ebp + 0x60]
mov ecx, dword [ebp + 0x64]
push edx
mov edx, dword [ecx + 0x18]
push dword [edx + eax*4]
call fcn.0060e110
test eax, eax
jne 0x617640
mov ecx, dword [ebp + 0x64]
mov edx, dword [ecx + 0x18]
push eax
push dword [ebp + 0x5c]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [esi + 0x6ca618]
push eax
mov eax, dword [edi + 0x44]
push dword [edx + eax*4]
call fcn.0060e2b9
mov dword [ebp + 0x6c], eax
jmp 0x617628
sub ecx, 0x10
xor eax, eax
shl ecx, 4
lea ecx, [ebp + ecx - 0x264]
mov edx, dword [ebp + eax*4 + 0xc]
cmp edx, dword [ebp + 0x60]
jae 0x61761c
add edx, ebx
mov edx, dword [esi + edx*4]
mov dword [ecx], edx
jmp 0x61761f
or dword [ecx], 0xffffffff
inc eax
add ecx, 4
cmp eax, 4
jb 0x61760a
cmp dword [ebp + 0x6c], 1
je 0x617647
inc dword [ebp + 0x74]
add ebx, dword [ebp + 0x60]
cmp dword [ebp + 0x74], 3
jb 0x61755f
jmp 0x617647
mov dword [ebp + 0x6c], 1
xor eax, eax
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x54], eax
cmp dword [ebp + 0x4c], eax
je 0x61765c
xor ecx, ecx
inc ecx
sub ecx, dword [ebp + 0x74]
jmp 0x61765f
mov ecx, dword [ebp + 0x74]
cmp dword [ecx*4 + 0x6ca624], 0x10
jb 0x6176c5
cmp dword [ebp + 0x58], eax
mov dword [ebp + 0x70], eax
jbe 0x6176c5
xor edi, edi
cmp dword [ebp + 0x60], eax
jbe 0x6176ba
mov ecx, dword [ebp + 0x70]
mov edx, dword [ebp + ecx*4 - 0x44]
mov ebx, dword [edx + 0xc]
cmp ebx, eax
mov dword [ebp + 0x68], eax
jbe 0x6176ab
mov ecx, dword [ebp + 0x54]
mov esi, dword [ebp + 0x44]
mov esi, dword [esi + 8]
add ecx, edi
mov esi, dword [esi + ecx*4]
mov ecx, dword [edx + 0x10]
cmp esi, dword [ecx]
je 0x6176b3
inc dword [ebp + 0x68]
add ecx, 4
xor eax, eax
cmp dword [ebp + 0x68], ebx
jb 0x61769a
inc edi
cmp edi, dword [ebp + 0x60]
jb 0x617682
jmp 0x6176ba
mov dword [ebp + 0x6c], 1
inc dword [ebp + 0x70]
mov ecx, dword [ebp + 0x70]
cmp ecx, dword [ebp + 0x58]
jb 0x617671
mov ecx, dword [ebp + 0x60]
inc dword [ebp + 0x74]
add dword [ebp + 0x54], ecx
cmp dword [ebp + 0x74], 3
jb 0x61764f
cmp dword [ebp + 0x6c], eax
jne 0x617b29
cmp dword [ebp + 0x50], eax
jne 0x6176f4
xor ebx, ebx
cmp dword [ebp + 0x58], eax
mov dword [ebp + 0x54], ebx
ja 0x617a48
mov edx, dword [ebp + 0x58]
mov eax, edx
shl eax, 2
mov ecx, eax
mov ebx, ecx
shr ecx, 2
lea esi, [ebp - 0x44]
lea edi, [ebp - 0x84]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x44]
inc edx
mov dword [ebp + eax - 0x84], ecx
mov dword [ebp + 0x34], edx
xor eax, eax
mov ecx, dword [ebp + eax - 0x264]
cmp ecx, 0xffffffff
jne 0x61773d
mov ecx, dword [ebp + eax - 0x1c4]
cmp ecx, 0xffffffff
je 0x617744
mov dword [ebp + eax - 0x124], ecx
add eax, 4
cmp eax, 0xa0
jb 0x617725
and dword [ebp + 0x6c], 0
mov eax, dword [ebp + 0x6c]
xor edi, edi
cmp eax, edi
jne 0x617e99
cmp dword [ebp + 0x5c], edi
mov dword [ebp + 0x70], edi
jbe 0x617991
and dword [ebp + 0x54], 0
lea eax, [ebp + edi*4 - 0xe4]
mov ecx, dword [eax - 0x30]
cmp ecx, dword [eax - 0x10]
mov dword [ebp + 0x74], ecx
jne 0x61750d
mov ecx, dword [eax - 0x20]
cmp ecx, dword [eax]
mov dword [ebp + 0x68], ecx
jne 0x61750d
mov ebx, dword [eax + 0x10]
cmp ebx, dword [eax + 0x30]
jne 0x61750d
mov esi, dword [eax + 0x20]
cmp esi, dword [eax + 0x40]
mov dword [ebp + 0x2c], esi
jne 0x61750d
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax + 0x14]
mov edi, dword [ecx + esi*4]
mov esi, dword [eax + 0x10]
mov edx, dword [ecx + ebx*4]
mov eax, dword [edx + 4]
mov eax, dword [esi + eax*4]
and dword [ebp + 0x60], 0
cmp ebx, dword [ebp + 0x68]
mov dword [ebp + 0x3c], eax
mov eax, dword [edi + 4]
mov eax, dword [esi + eax*4]
mov dword [ebp + 0x48], eax
jne 0x6177ee
test byte [eax + 5], 1
je 0x6177ee
fld qword [edi + 0x20]
fcomp qword [0x6bef98]
fnstsw ax
test ah, 0x44
jnp 0x61780f
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x2c], eax
jne 0x617816
mov eax, dword [ebp + 0x3c]
test byte [eax + 5], 1
je 0x617816
fld qword [edx + 0x20]
fcomp qword [0x6bef98]
fnstsw ax
test ah, 0x44
jp 0x617816
mov dword [ebp + 0x60], 1
cmp dword [ebp + 0x60], 0
lea eax, [ebp - 0x104]
mov dword [ebp + 0x6c], eax
jne 0x6178d6
mov eax, dword [edx + 0x38]
mov ebx, dword [ebp + 0x74]
cmp eax, ebx
je 0x617843
cmp eax, 0xffffffff
je 0x617873
mov ebx, dword [ecx + ebx*4]
cmp dword [ebx + 0x38], eax
jne 0x617873
mov ebx, dword [ebp + 0x74]
mov eax, dword [ecx + ebx*4]
mov eax, dword [eax + 0x3c]
xor eax, 0x80000
cmp dword [edx + 0x3c], eax
jne 0x617873
mov eax, dword [ebp + 0x48]
test byte [eax + 5], 1
je 0x617873
fld qword [edi + 0x20]
fcomp qword [0x699e80]
fnstsw ax
test ah, 0x44
jp 0x617873
mov dword [ebp + 0x60], 1
mov ebx, dword [edi + 0x38]
mov eax, dword [ebp + 0x74]
cmp ebx, eax
je 0x61788d
cmp ebx, 0xffffffff
je 0x6178bd
mov eax, dword [ecx + eax*4]
cmp dword [eax + 0x38], ebx
jne 0x6178bd
mov eax, dword [ebp + 0x74]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x3c]
xor eax, 0x80000
cmp dword [edi + 0x3c], eax
jne 0x6178bd
mov eax, dword [ebp + 0x3c]
test byte [eax + 5], 1
je 0x6178bd
fld qword [edx + 0x20]
fcomp qword [0x699e80]
fnstsw ax
test ah, 0x44
jp 0x6178bd
mov dword [ebp + 0x60], 1
xor eax, eax
inc eax
cmp dword [ebp + 0x60], 0
mov dword [ebp + 0x54], eax
je 0x617e99
lea eax, [ebp - 0x114]
mov dword [ebp + 0x6c], eax
cmp dword [ebp + 0x54], 0
mov edi, dword [ebp + 0x70]
mov eax, dword [ebp + edi*4 - 0x124]
mov eax, dword [ecx + eax*4]
mov edx, dword [ebp + 0x68]
jne 0x6178ef
mov edx, dword [ebp + 0x74]
mov ebx, dword [eax + 4]
mov ebx, dword [esi + ebx*4]
test byte [ebx + 5], 1
mov edx, dword [ecx + edx*4]
je 0x61750d
fld qword [eax + 0x20]
fcomp qword [0x692b10]
fnstsw ax
test ah, 0x44
jp 0x61750d
mov eax, dword [edx + 4]
mov eax, dword [esi + eax*4]
test byte [eax + 5], 1
je 0x61750d
fld qword [edx + 0x20]
fcomp qword [0x699e80]
fnstsw ax
test ah, 0x44
jp 0x61750d
mov eax, dword [ebp + 0x6c]
mov eax, dword [eax + edi*4]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx + 4]
mov edx, dword [ebp + 0x64]
cmp eax, dword [edx + 0x88]
je 0x617958
mov dword [ebp + 0x38], 1
mov esi, dword [ebp + 0x40]
xor eax, eax
test esi, esi
jbe 0x61796f
mov edx, dword [ecx + 0x44]
cmp edx, dword [ebp + eax*4 + 0xc]
je 0x61796f
inc eax
cmp eax, esi
jb 0x617964
cmp eax, esi
jne 0x617984
cmp dword [ebp + 0x38], 0
jne 0x617984
mov eax, dword [ecx + 0x44]
mov dword [ebp + esi*4 + 0xc], eax
inc esi
mov dword [ebp + 0x40], esi
inc edi
cmp edi, dword [ebp + 0x5c]
mov dword [ebp + 0x70], edi
jb 0x61776b
or byte [ebp + 0x25], 2
and dword [ebp + 0x70], 0
cmp dword [ebp + 0x40], 0
jbe 0x617b58
mov eax, dword [ebp + 0x70]
mov eax, dword [ebp + eax*4 + 0xc]
cmp eax, 0xffffffff
je 0x617c55
mov ecx, dword [ebp + 0x64]
mov ecx, dword [ecx + 0x18]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
and eax, 0xfff00000
cmp eax, 0x60000000
je 0x617b51
cmp eax, 0x60400000
je 0x617b51
cmp eax, 0x60800000
je 0x617b51
cmp eax, 0x60c00000
je 0x617b51
xor edx, edx
cmp eax, edx
je 0x617b51
cmp dword [ebp + 0x5c], edx
mov edi, dword [ecx + 0xc]
mov dword [ebp + 0x68], edx
jbe 0x617a29
test edi, edi
jbe 0x617a23
mov eax, dword [ebp + 0x6c]
mov esi, dword [eax + edx*4]
mov eax, dword [ecx + 0x10]
mov dword [ebp + 0x48], edi
cmp dword [eax], esi
jne 0x617a1b
inc dword [ebp + 0x68]
add eax, 4
dec dword [ebp + 0x48]
jne 0x617a14
inc edx
cmp edx, dword [ebp + 0x5c]
jb 0x617a04
cmp dword [ebp + 0x68], edi
jne 0x617c55
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [ebp + 0x40]
jb 0x6179a3
jmp 0x617b58
xor eax, eax
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + ebx*4 - 0x44]
mov eax, dword [eax + 0xc]
test eax, eax
mov dword [ebp + 0x2c], eax
jbe 0x617b10
mov eax, dword [ebp + 0x64]
mov eax, dword [eax + 0xc]
test eax, eax
jbe 0x617b01
mov ecx, dword [ebp + 0x64]
mov ecx, dword [ecx + 0x18]
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x48], eax
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax]
test ecx, ecx
je 0x617af4
cmp dword [ecx], 0
je 0x617af4
mov edi, dword [ecx + 4]
and dword [ebp + 0x74], 0
test edi, edi
jbe 0x617ac6
mov eax, dword [ebp + ebx*4 - 0x44]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp + 0x70]
mov esi, dword [eax + edx*4]
mov edx, dword [ecx + 8]
mov eax, edi
mov edi, dword [edx]
cmp edi, esi
je 0x617ab9
mov ebx, dword [ebp + 0x64]
mov ebx, dword [ebx + 0x14]
mov edi, dword [ebx + edi*4]
cmp dword [edi + 0x38], esi
mov ebx, dword [ebp + 0x54]
jne 0x617ac0
mov dword [ebp + 0x74], 1
add edx, 4
dec eax
jne 0x617aa2
cmp ecx, dword [ebp + 0x44]
jne 0x617acf
and dword [ebp + 0x74], 0
cmp dword [ebp + 0x74], 0
je 0x617af4
xor edx, edx
cmp ecx, dword [ebp + edx*4 - 0x44]
jne 0x617ae1
and dword [ebp + 0x74], 0
inc edx
cmp edx, dword [ebp + 0x58]
jb 0x617ad7
cmp dword [ebp + 0x74], 0
je 0x617af4
mov dword [ebp + 0x6c], 1
add dword [ebp + 0x68], 4
dec dword [ebp + 0x48]
jne 0x617a77
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [ebp + 0x2c]
jb 0x617a5d
inc ebx
cmp ebx, dword [ebp + 0x58]
mov dword [ebp + 0x54], ebx
jb 0x617a46
cmp dword [ebp + 0x6c], 0
je 0x6176f4
xor eax, eax
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 1
jb 0x61751c
cmp dword [ebp + 0x6c], eax
je 0x6176f4
inc dword [ebp + 0x50]
cmp dword [ebp + 0x50], 1
jb 0x617518
jmp 0x617752
mov dword [ebp + 0x38], 1
xor edx, edx
cmp dword [ebp + 0x38], edx
jne 0x617c55
cmp dword [ebp + 0x28], edx
jne 0x617b77
cmp dword [ebp + 0x30], edx
je 0x617b72
mov eax, dword [ebp + 0x58]
jmp 0x617b7a
mov eax, dword [ebp + 0x44]
jmp 0x617b7a
mov eax, dword [ebp + 0x6c]
mov edi, dword [ebp + 0x64]
or ebx, 0xffffffff
cmp dword [ebp + 0x5c], edx
mov dword [ebp + 0x70], eax
mov dword [ebp + 0x48], edx
jbe 0x617bb1
mov esi, dword [edi + 0x14]
mov eax, dword [ebp + 0x70]
mov eax, dword [eax + edx*4]
mov eax, dword [esi + eax*4]
mov ecx, dword [eax + 0x54]
cmp dword [ebp + 0x48], ecx
jae 0x617ba2
mov dword [ebp + 0x48], ecx
mov eax, dword [eax + 0x50]
cmp ebx, eax
jbe 0x617bab
mov ebx, eax
inc edx
cmp edx, dword [ebp + 0x5c]
jb 0x617b8e
mov eax, dword [edi + 0xc]
test eax, eax
jbe 0x617da8
mov ecx, dword [edi + 0x18]
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x68]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x617c3e
xor ecx, ecx
cmp dword [ebp + 0x28], ecx
je 0x617bf1
cmp ecx, dword [ebp + 0x34]
jae 0x617bed
cmp eax, dword [ebp + ecx*4 - 0x84]
je 0x617bea
inc ecx
cmp ecx, dword [ebp + 0x34]
jb 0x617bdb
cmp ecx, dword [ebp + 0x34]
jne 0x617c3e
jmp 0x617bfb
cmp eax, dword [ebp + 0x20]
je 0x617c3e
cmp eax, dword [ebp + 0x1c]
je 0x617c3e
mov ecx, dword [eax + 4]
test ecx, ecx
jbe 0x617c3e
mov edx, dword [ebp + 0x64]
mov edx, dword [edx + 0x14]
mov eax, dword [eax + 8]
mov dword [ebp + 0x48], ecx
mov ecx, dword [eax]
mov ebx, dword [edx + ecx*4]
xor edi, edi
cmp dword [ebp + 0x5c], edi
jbe 0x617c36
mov esi, dword [ebp + 0x70]
mov esi, dword [esi + edi*4]
cmp esi, ecx
je 0x617c29
cmp dword [ebx + 0x38], esi
jne 0x617c30
mov dword [ebp + 0x38], 1
inc edi
cmp edi, dword [ebp + 0x5c]
jb 0x617c1a
add eax, 4
dec dword [ebp + 0x48]
jne 0x617c0e
add dword [ebp + 0x68], 4
dec dword [ebp + 0x3c]
jne 0x617bc5
cmp dword [ebp + 0x38], 0
je 0x617da8
push 0x74
call fcn.005eb38c
test eax, eax
je 0x617c6b
mov ecx, eax
call fcn.005eb069
mov ebx, eax
jmp 0x617c6d
xor ebx, ebx
xor edi, edi
cmp ebx, edi
je 0x61750d
mov eax, dword [ebp + 0x5c]
push edi
push dword [ebp + 0x5c]
and eax, 0xfffff
push dword [ebp + 0x5c]
or eax, 0x10000000
push eax
mov ecx, ebx
call fcn.005eb3cd
mov esi, eax
cmp esi, edi
mov ecx, ebx
jl 0x617cb1
mov eax, dword [ebp + 0x64]
push dword [eax + 0xe0]
call fcn.005eb09c
mov esi, eax
cmp esi, edi
jge 0x617cbf
mov ecx, ebx
push 1
call fcn.005c765b
mov eax, esi
jmp 0x617e99
mov eax, dword [ebp + 0x5c]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
cmp dword [ebp + 0x28], edi
jne 0x617cff
cmp dword [ebp + 0x30], edi
mov edi, dword [ebx + 8]
je 0x617cec
mov esi, dword [ebp + 0x58]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov eax, dword [ebp + 0x20]
jmp 0x617d19
mov esi, dword [ebp + 0x44]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov eax, dword [ebp + 0x1c]
jmp 0x617d19
mov edi, dword [ebx + 8]
mov esi, dword [ebp + 0x6c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov eax, dword [ebp + 0x64]
mov eax, dword [eax + 0xe0]
mov esi, dword [eax + 0x10]
mov edi, dword [ebx + 0x10]
mov edx, dword [ebp + 0x64]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor esi, esi
xor ecx, ecx
cmp dword [ebp + 0x5c], esi
jbe 0x617d51
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + ecx*4]
mov edi, dword [edx + 0x14]
mov eax, dword [edi + eax*4]
mov edi, dword [ebp + 0x24]
or dword [eax + 0x3c], edi
inc ecx
cmp ecx, dword [ebp + 0x5c]
jb 0x617d39
cmp dword [ebp + 0x28], esi
jne 0x617d67
cmp dword [ebp + 0x30], esi
je 0x617d62
mov eax, dword [ebp + 0x20]
mov dword [eax], esi
jmp 0x617d7d
mov eax, dword [ebp + 0x1c]
jmp 0x617d5e
xor eax, eax
cmp dword [ebp + 0x34], esi
jbe 0x617d7d
mov ecx, dword [ebp + eax*4 - 0x84]
inc eax
cmp eax, dword [ebp + 0x34]
mov dword [ecx], esi
jb 0x617d6e
mov eax, dword [edx + 0xdc]
mov ecx, dword [edx + 0x18]
mov ecx, dword [ecx + eax*4]
cmp ecx, esi
je 0x617d97
push 1
call fcn.005c765b
mov edx, dword [ebp + 0x64]
mov eax, dword [edx + 0xdc]
mov ecx, dword [edx + 0x18]
mov dword [ecx + eax*4], ebx
jmp 0x617e97
mov edi, dword [ebp + 0x64]
xor esi, esi
xor eax, eax
cmp dword [ebp + 0x40], esi
mov dword [ebp + 0x48], eax
jbe 0x617e70
cmp dword [ebp + 0x28], esi
mov eax, dword [ebp + eax*4 + 0xc]
mov ecx, dword [edi + 0x18]
mov edx, dword [ecx + eax*4]
jne 0x617dd9
cmp dword [ebp + 0x30], esi
je 0x617dd4
mov eax, dword [ebp + 0x20]
jmp 0x617ddf
mov eax, dword [ebp + 0x1c]
jmp 0x617ddf
mov eax, dword [edi + 0xe0]
mov eax, dword [eax + 0xc]
xor ecx, ecx
cmp eax, esi
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x60], ecx
jbe 0x617e60
cmp dword [edx + 0xc], esi
mov dword [ebp + 0x74], esi
jbe 0x617e54
mov eax, dword [ebp + 0x6c]
shl ecx, 2
lea esi, [ecx + eax]
mov ebx, dword [ebp + 0x74]
mov eax, dword [edx + 0x10]
lea eax, [eax + ebx*4]
mov ebx, dword [eax]
cmp ebx, dword [esi]
jne 0x617e47
cmp dword [ebp + 0x28], 0
jne 0x617e24
cmp dword [ebp + 0x30], 0
je 0x617e1f
mov ebx, dword [ebp + 0x20]
jmp 0x617e2a
mov ebx, dword [ebp + 0x1c]
jmp 0x617e2a
mov ebx, dword [edi + 0xe0]
mov ebx, dword [ebx + 0x10]
mov ebx, dword [ecx + ebx]
mov dword [eax], ebx
mov eax, dword [edx + 0x10]
mov ebx, dword [ebp + 0x74]
mov eax, dword [eax + ebx*4]
mov ebx, dword [edi + 0x14]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp + 0x24]
or dword [eax + 0x3c], ebx
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
cmp eax, dword [edx + 0xc]
jb 0x617dff
xor esi, esi
mov ecx, dword [ebp + 0x60]
inc ecx
cmp ecx, dword [ebp + 0x68]
mov dword [ebp + 0x60], ecx
jb 0x617dee
mov eax, dword [ebp + 0x48]
inc eax
cmp eax, dword [ebp + 0x40]
mov dword [ebp + 0x48], eax
jb 0x617dbb
cmp dword [ebp + 0x28], esi
jne 0x617e81
mov eax, dword [ebp + 0x1c]
mov dword [eax], esi
mov eax, dword [ebp + 0x20]
mov dword [eax], esi
jmp 0x617e97
xor eax, eax
cmp dword [ebp + 0x34], esi
jbe 0x617e97
mov ecx, dword [ebp + eax*4 - 0x84]
inc eax
cmp eax, dword [ebp + 0x34]
mov dword [ecx], esi
jb 0x617e88
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x78
leave
ret