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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0xa8
push ebx
mov ebx, ecx
xor eax, eax
test byte [ebx + 0x34], 8
jne 0x5cde22
push esi
push edi
xor edi, edi
cmp dword [ebx + 4], edi
mov dword [ebp + 0x1c], edi
jbe 0x5cd115
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + eax*4]
inc eax
mov dword [ecx + 0x10], edi
cmp eax, dword [ebx + 4]
jb 0x5cd106
xor edx, edx
cmp dword [ebx + 8], edi
jbe 0x5cd150
mov eax, dword [ebx + 0x14]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
cmp dword [ebx + 0x4c], eax
je 0x5cd14a
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 4]
test cl, 2
je 0x5cd14a
test ch, 2
jne 0x5cd14a
mov esi, dword [esi + 8]
lea ecx, [esi + 1]
cmp dword [eax + 0x10], ecx
jae 0x5cd14a
mov dword [eax + 0x10], ecx
inc edx
cmp edx, dword [ebx + 8]
jb 0x5cd11c
xor eax, eax
cmp dword [ebx + 4], edi
jbe 0x5cd168
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov esi, dword [ecx]
add eax, dword [esi + 0x10]
add ecx, 4
dec edx
jne 0x5cd15d
mov esi, eax
shl esi, 2
push esi
call fcn.0064adfa
mov edi, eax
test edi, edi
pop ecx
mov dword [ebp + 8], edi
je 0x5cde28
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor edx, edx
xor ecx, ecx
cmp dword [ebx + 4], edx
jbe 0x5cd1c3
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + edx*4]
mov esi, dword [eax + 0x10]
mov edi, dword [ebp + 8]
neg esi
sbb esi, esi
lea edi, [edi + ecx*4]
and esi, edi
mov dword [eax + 0x1c], esi
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + edx*4]
add ecx, dword [esi + 0x10]
inc edx
cmp edx, dword [ebx + 4]
jb 0x5cd19f
xor esi, esi
xor edx, edx
cmp dword [ebx + 8], esi
jbe 0x5cd1fc
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax]
cmp dword [ebx + 0x4c], ecx
je 0x5cd1f6
mov edi, dword [ebx + 0x10]
mov ecx, dword [edi + ecx*4]
mov ecx, dword [ecx + 0x1c]
cmp ecx, esi
je 0x5cd1f6
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
lea ecx, [ecx + edi*4]
inc eax
cmp dword [ecx], eax
jae 0x5cd1f6
mov dword [ecx], eax
inc edx
cmp edx, dword [ebx + 8]
jb 0x5cd1cc
mov eax, dword [ebx + 0x90]
test al, 6
jne 0x5cd56c
mov ecx, ebx
call fcn.005c7734
cmp dword [ebx + 0xc], esi
mov dword [ebp + 0x64], esi
jbe 0x5cd56c
mov edi, dword [ebx + 0x18]
mov eax, dword [ebp + 0x64]
mov eax, dword [edi + eax*4]
cmp dword [eax], 0x24000001
mov dword [ebp + 0x68], eax
jne 0x5cd55d
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov ecx, dword [ebx + 0x14]
mov eax, dword [eax + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebx + 0x10]
mov esi, dword [edx]
mov esi, dword [eax + esi*4]
test byte [esi + 4], 2
je 0x5cd55d
mov esi, dword [ecx]
mov eax, dword [eax + esi*4]
test byte [eax + 4], 2
je 0x5cd55d
mov eax, dword [edx + 0x2c]
mov esi, dword [edi + eax*4]
cmp dword [esi], 0x25000001
mov eax, dword [ecx + 0x2c]
mov edi, dword [edi + eax*4]
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x4c], edi
je 0x5cd290
mov ecx, esi
call fcn.005c3922
test eax, eax
je 0x5cd55d
cmp dword [edi], 0x25000001
je 0x5cd2a7
mov ecx, edi
call fcn.005c3922
test eax, eax
je 0x5cd55d
mov edx, dword [ebx + 0x90]
mov ecx, dword [edi + 4]
mov eax, dword [esi + 4]
not edx
and edx, 0x20
shr ecx, 1
shr eax, 1
or edx, 0x40
mov dword [ebp + 0x3c], ecx
add ecx, eax
shr edx, 5
cmp ecx, edx
mov dword [ebp + 0x6c], ecx
jb 0x5cd55d
cmp ecx, 4
ja 0x5cd55d
mov edx, dword [esi + 0x10]
mov edx, dword [edx]
mov ecx, dword [ebx + 0x14]
mov esi, dword [ecx + edx*4]
mov edx, dword [ebp + 0x64]
cmp edx, dword [esi + 0x38]
jne 0x5cd55d
cmp edx, dword [esi + 0x3c]
jne 0x5cd55d
mov esi, dword [edi + 0x10]
mov esi, dword [esi]
mov ecx, dword [ecx + esi*4]
cmp edx, dword [ecx + 0x38]
jne 0x5cd55d
cmp edx, dword [ecx + 0x3c]
jne 0x5cd55d
mov ecx, dword [ebp + 0x50]
mov esi, dword [ecx + 8]
shl eax, 2
mov dword [ebp + 0x5c], esi
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x4c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [edx + 8]
mov ecx, dword [ebp + 0x3c]
shl ecx, 2
mov dword [ebp + 0x40], ecx
mov edx, ecx
shr ecx, 2
mov dword [ebp + 0x38], esi
lea edi, [ebp + eax + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x5c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [edx + eax]
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp - 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x38]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x40]
lea esi, [edx + ecx]
lea edi, [ebp + eax - 0xc]
mov dword [ebp + 0x48], eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0xffffffffffffffff
push dword [ebp + 0x68]
mov ecx, eax
push 0
push 0
push dword [ebp + 0x6c]
and ecx, 3
lea eax, [ebp + 0xc]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.005c6e19
test eax, eax
je 0x5cd3cd
push 0xffffffffffffffff
push dword [ebp + 0x68]
xor esi, esi
push esi
push esi
push dword [ebp + 0x6c]
lea eax, [ebp - 0xc]
push eax
mov ecx, ebx
call fcn.005c6e19
test eax, eax
je 0x5cd3cd
mov dword [ebp + 0x48], esi
jmp 0x5cd485
mov eax, dword [ebp + 0x50]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x48]
mov edx, ecx
shr ecx, 2
mov esi, eax
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x4c]
mov edx, dword [ecx + 8]
mov ecx, dword [ebp + 0x40]
mov edi, dword [ebp + 0x48]
lea esi, [edx + ecx]
lea edi, [ebp + edi + 0x28]
mov dword [ebp + 0x38], edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x48]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [eax + edx]
mov ecx, edx
mov eax, ecx
shr ecx, 2
lea edi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x40]
mov esi, dword [ebp + 0x38]
mov eax, ecx
shr ecx, 2
lea edi, [ebp + edx - 0x1c]
rep movsd dword es:[edi], dword [esi]
push 0xffffffffffffffff
push dword [ebp + 0x68]
mov ecx, eax
push 0
push 0
push dword [ebp + 0x6c]
and ecx, 3
lea eax, [ebp + 0x28]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.005c6e19
test eax, eax
je 0x5cd55d
push 0xffffffffffffffff
push dword [ebp + 0x68]
lea eax, [ebp - 0x1c]
push 0
push 0
push dword [ebp + 0x6c]
mov ecx, ebx
push eax
call fcn.005c6e19
test eax, eax
je 0x5cd55d
mov dword [ebp + 0x48], 1
xor esi, esi
push 0x38
call fcn.0064adfa
cmp eax, esi
pop ecx
je 0x5cd49d
mov ecx, eax
call fcn.005c3564
mov dword [ebp + 0x44], eax
jmp 0x5cd4a0
mov dword [ebp + 0x44], esi
cmp dword [ebp + 0x44], esi
je 0x5cde28
mov eax, dword [ebp + 0x6c]
mov edi, dword [ebp + 0x44]
push 0
lea ecx, [eax + eax]
push 1
and eax, 0xffffff
push ecx
or eax, 0x30000000
push eax
mov ecx, edi
call fcn.005c35bb
mov esi, eax
test esi, esi
jl 0x5cd614
push dword [ebp + 0x68]
mov ecx, edi
call fcn.005c389d
mov esi, eax
test esi, esi
jl 0x5cd614
cmp dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x68]
mov eax, dword [eax + 0x10]
mov ecx, dword [edi + 0x10]
mov eax, dword [eax]
mov dword [ecx], eax
lea esi, [ebp + 0xc]
je 0x5cd500
lea esi, [ebp + 0x28]
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x44]
mov edi, dword [edx + 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp dword [ebp + 0x48], 0
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp - 0xc]
je 0x5cd528
lea esi, [ebp - 0x1c]
mov edx, dword [ebp + 0x44]
mov edi, dword [edx + 8]
mov ecx, eax
shr ecx, 2
add edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x64]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp + 0x68]
push 1
call fcn.005c2f8e
mov eax, dword [ebp + 0x50]
and dword [eax], 0
mov eax, dword [ebp + 0x4c]
and dword [eax], 0
inc dword [ebp + 0x64]
mov eax, dword [ebp + 0x64]
cmp eax, dword [ebx + 0xc]
jb 0x5cd21d
mov ecx, ebx
call fcn.005c7734
and dword [ebp + 0x64], 0
cmp dword [ebx + 0xc], 0
jbe 0x5cde0b
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x64]
mov edi, dword [eax + ecx*4]
mov ecx, edi
mov dword [ebp + 0x3c], edi
call fcn.005c396a
test eax, eax
jne 0x5cd5b2
mov ecx, edi
call fcn.005c397c
test eax, eax
jne 0x5cd5b2
mov ecx, edi
call fcn.005c398e
test eax, eax
je 0x5cddfc
mov ecx, edi
call fcn.005c38fe
test eax, eax
jne 0x5cd5ca
test byte [ebx + 0x90], 6
jne 0x5cddfc
mov eax, dword [edi + 0x10]
mov eax, dword [eax]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 0x1c]
test eax, eax
mov dword [ebp + 0x40], eax
je 0x5cddfc
mov eax, dword [ebx + 0xc]
and dword [ebp + 0x44], 0
cmp dword [edi + 4], 0
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x48], eax
jbe 0x5cd650
mov eax, dword [edi + 8]
mov dword [ebp + 0x50], eax
mov eax, dword [edi + 4]
mov dword [ebp + 0x5c], eax
mov eax, dword [ebp + 0x50]
mov eax, dword [eax]
jmp 0x5cd642
mov ecx, edi
push 1
call fcn.005c2f8e
jmp 0x5cde15
mov eax, dword [ecx + eax*4]
mov esi, dword [eax]
mov edx, dword [ebx + 0x10]
mov edx, dword [edx + esi*4]
test byte [edx + 4], 2
je 0x5cd63f
mov edx, dword [eax + 0x2c]
inc edx
cmp dword [ebp + 0x44], edx
jae 0x5cd63f
mov dword [ebp + 0x44], edx
mov eax, dword [eax + 4]
cmp eax, 0xffffffff
jne 0x5cd622
add dword [ebp + 0x50], 4
dec dword [ebp + 0x5c]
jne 0x5cd60d
cmp dword [edi + 0xc], 0
jbe 0x5cd69e
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 0x10]
mov dword [ebp + 0x5c], eax
mov eax, dword [esi]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x38]
cmp dword [ebp + 0x38], edx
jbe 0x5cd68e
mov dword [ebp + 0x38], edx
jmp 0x5cd68e
mov eax, dword [ecx + eax*4]
mov edi, dword [eax]
mov edx, dword [ebx + 0x10]
mov edx, dword [edx + edi*4]
test byte [edx + 4], 2
je 0x5cd68e
mov edx, dword [eax + 0x2c]
inc edx
cmp dword [ebp + 0x44], edx
jae 0x5cd68e
mov dword [ebp + 0x44], edx
mov eax, dword [eax + 4]
cmp eax, 0xffffffff
jne 0x5cd671
add esi, 4
dec dword [ebp + 0x5c]
jne 0x5cd65f
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x68], eax
jmp 0x5cdb68
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x64], eax
je 0x5cdb62
cmp dword [ebp + 0x64], eax
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx + eax*4]
mov dword [ebp + 0x20], ecx
jae 0x5cd6c8
mov dword [ebp + 0x58], ecx
jmp 0x5cd6ce
mov edx, dword [ebp + 0x3c]
mov dword [ebp + 0x58], edx
cmp dword [ebp + 0x64], eax
jae 0x5cd6d6
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ecx]
mov dword [ebp + 0x70], ecx
mov ecx, dword [ebp + 0x58]
xor eax, dword [ecx]
test eax, 0xff000000
jne 0x5cdb62
mov ecx, dword [ebp + 0x70]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov eax, dword [ebx + 0x14]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp + 0x58]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
cmp ecx, dword [edx]
mov dword [ebp + 0x6c], ecx
jne 0x5cdb62
mov ecx, dword [eax + 4]
cmp ecx, dword [edx + 4]
jne 0x5cdb62
mov esi, dword [ebp + 0x70]
mov ecx, dword [esi + 4]
mov edi, dword [ebp + 0x58]
add ecx, dword [edi + 4]
mov dword [ebp + 4], ecx
mov ecx, dword [esi + 0xc]
mov esi, dword [edi + 0xc]
mov dword [ebp + 0x4c], ecx
add ecx, esi
cmp ecx, 4
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x60], ecx
ja 0x5cdb62
mov eax, dword [eax + 8]
mov edx, dword [edx + 8]
cmp eax, edx
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x5c], edx
je 0x5cd78d
test byte [ebx + 0x90], 6
jne 0x5cdb62
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp + 0x6c]
mov eax, dword [eax + ecx*4]
test byte [eax + 4], 0x10
jne 0x5cdb62
mov eax, dword [ebp + 0x40]
mov ecx, edx
mov ecx, dword [eax + ecx*4]
mov edx, dword [ebp + 0x50]
add ecx, dword [eax + edx*4]
cmp ecx, 4
ja 0x5cdb62
mov eax, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x68]
cmp eax, ecx
mov dword [ebp + 0x74], eax
jb 0x5cd79d
mov dword [ebp + 0x74], ecx
mov esi, dword [ebp + 0x58]
mov ecx, esi
call fcn.005c38fe
test eax, eax
jne 0x5cdacf
mov ecx, esi
call fcn.005c3910
test eax, eax
jne 0x5cdacf
mov ecx, esi
call fcn.005c396a
test eax, eax
je 0x5cd814
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x70]
mov esi, dword [edx + 8]
push dword [ebp + 0x74]
shl eax, 2
push dword [ebp + 0x70]
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x58]
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov esi, dword [edx + 8]
mov ecx, dword [ebp + 0x54]
push 0
push dword [ebp + 0x60]
lea edi, [ebp + eax + 0x28]
lea eax, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
push eax
mov ecx, ebx
call fcn.005c6e19
jmp 0x5cdac9
mov ecx, esi
call fcn.005c397c
test eax, eax
je 0x5cd9ad
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x70]
mov esi, dword [ecx + 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x58]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [edx + 8]
mov ecx, dword [ebp + 0x54]
shl ecx, 2
mov dword [ebp + 0x4c], ecx
mov edx, ecx
shr ecx, 2
mov dword [ebp + 0x6c], esi
lea edi, [ebp + eax + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x70]
mov edx, dword [edx + 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [ebp + 0x74]
lea esi, [edx + eax]
mov ecx, eax
mov edx, ecx
shr ecx, 2
push dword [ebp + 0x70]
lea edi, [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x6c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x4c]
lea esi, [edx + ecx]
lea edi, [ebp + eax + 0xc]
mov dword [ebp + 0x24], eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
push 0
push dword [ebp + 0x60]
and ecx, 3
lea eax, [ebp + 0x28]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.005c6e19
push dword [ebp + 0x74]
mov esi, eax
push dword [ebp + 0x70]
lea eax, [ebp + 0xc]
push 0
push 0
push dword [ebp + 0x60]
mov ecx, ebx
push eax
call fcn.005c6e19
test esi, esi
je 0x5cd8de
test eax, eax
jne 0x5cdb23
mov ecx, dword [ebp + 0x58]
call fcn.005c39c2
test eax, eax
je 0x5cdb3f
mov eax, dword [ebp + 0x70]
mov esi, dword [eax + 8]
mov eax, dword [ebp + 0x24]
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x58]
mov edx, dword [ecx + 8]
mov ecx, dword [ebp + 0x4c]
lea esi, [edx + ecx]
mov dword [ebp + 0x6c], edx
mov edx, ecx
shr ecx, 2
lea edi, [ebp + eax - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x70]
mov edx, dword [edx + 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push dword [ebp + 0x74]
mov ecx, eax
push dword [ebp + 0x70]
lea esi, [edx + eax]
mov edx, ecx
shr ecx, 2
lea edi, [ebp - 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x6c]
lea edi, [ebp + eax - 0xc]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
push 0
push dword [ebp + 0x60]
and ecx, 3
lea eax, [ebp - 0x1c]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.005c6e19
push dword [ebp + 0x74]
mov esi, eax
push dword [ebp + 0x70]
lea eax, [ebp - 0xc]
push 0
push 0
push dword [ebp + 0x60]
mov ecx, ebx
push eax
call fcn.005c6e19
test esi, esi
je 0x5cdb3f
test eax, eax
je 0x5cdb3f
mov dword [ebp + 0x54], 1
jmp 0x5cdb27
mov ecx, esi
call fcn.005c398e
test eax, eax
je 0x5cdb3f
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x70]
mov esi, dword [ecx + 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x54]
shl ecx, 2
mov edx, dword [ebp + 0x58]
mov esi, dword [edx + 8]
mov edx, ecx
shr ecx, 2
mov dword [ebp + 0x6c], esi
lea edi, [ebp + eax + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 0x70]
mov edx, dword [edx + 8]
lea esi, [edx + eax]
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x6c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x54]
shl ecx, 2
lea esi, [edx + ecx]
mov edx, ecx
shr ecx, 2
lea edi, [ebp + eax + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x70]
mov edx, dword [edx + 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x4c]
lea esi, [edx + esi*8]
push dword [ebp + 0x74]
mov ecx, eax
mov edx, ecx
shr ecx, 2
push dword [ebp + 0x70]
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x54]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x6c]
mov ecx, edx
shl ecx, 2
lea edi, [ebp + eax - 0x30]
mov eax, ecx
shr ecx, 2
lea esi, [esi + edx*8]
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
push 0
push dword [ebp + 0x60]
and ecx, 3
lea eax, [ebp + 0x28]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
call fcn.005c6e19
push dword [ebp + 0x74]
mov edi, eax
push dword [ebp + 0x70]
xor esi, esi
push esi
push esi
push dword [ebp + 0x60]
lea eax, [ebp + 0xc]
push eax
mov ecx, ebx
call fcn.005c6e19
push dword [ebp + 0x74]
mov dword [ebp + 0x24], eax
push dword [ebp + 0x70]
lea eax, [ebp - 0x30]
push esi
push esi
push dword [ebp + 0x60]
mov ecx, ebx
push eax
call fcn.005c6e19
cmp edi, esi
je 0x5cdb3f
cmp dword [ebp + 0x24], esi
je 0x5cdb3f
test eax, eax
je 0x5cdb3f
jmp 0x5cdb23
mov ecx, dword [esi + 8]
mov edx, dword [ebp + 0x70]
mov esi, dword [edx + 8]
mov eax, dword [ebx + 0x14]
mov edx, dword [esi]
mov dword [ebp + 0x6c], ecx
mov ecx, dword [ecx]
mov ecx, dword [eax + ecx*4]
mov eax, dword [eax + edx*4]
mov edx, dword [ecx]
cmp edx, dword [eax]
jne 0x5cdb3f
mov edx, dword [ecx + 4]
cmp edx, dword [eax + 4]
jne 0x5cdb3f
mov ecx, dword [ecx + 8]
cmp ecx, dword [eax + 8]
jne 0x5cdb3f
mov eax, dword [ebp + 0x4c]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x54]
mov esi, dword [ebp + 0x6c]
lea edi, [ebp + eax + 0x28]
rep movsd dword es:[edi], dword [esi]
and dword [ebp + 0x54], 0
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x5c]
cmp ecx, edx
je 0x5cdb76
mov eax, dword [ebp + 0x40]
mov edx, dword [eax + edx*4]
add edx, dword [eax + ecx*4]
cmp edx, 4
jbe 0x5cdb76
mov esi, dword [ebp + 0x48]
jmp 0x5cdb5d
dec dword [ebx + 0xc]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x5cdb5d
push 1
mov ecx, eax
call fcn.005c2f8e
cmp dword [ebx + 0xc], esi
ja 0x5cdb44
inc dword [ebp + 0x68]
mov eax, dword [ebp + 0x68]
cmp eax, dword [ebp + 0x38]
jb 0x5cd6a9
jmp 0x5cddfc
push 0x38
call fcn.0064adfa
test eax, eax
pop ecx
je 0x5cdb8e
mov ecx, eax
call fcn.005c3564
mov dword [ebp + 0x74], eax
jmp 0x5cdb92
and dword [ebp + 0x74], 0
cmp dword [ebp + 0x74], 0
je 0x5cde28
mov edi, dword [ebp + 0x58]
mov eax, dword [edi]
xor eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x74]
push 0
push dword [ebp + 0x60]
and eax, 0xffffff
push dword [ebp + 4]
xor eax, dword [edi]
push eax
call fcn.005c35bb
mov esi, eax
test esi, esi
jl 0x5cde2f
mov ecx, dword [ebp + 0x74]
push edi
call fcn.005c389d
mov esi, eax
test esi, esi
jl 0x5cde2f
mov edx, dword [ebp + 0x5c]
cmp dword [ebp + 0x50], edx
je 0x5cdc1f
mov ecx, dword [ebp + 0x40]
xor esi, esi
cmp dword [ebx + 8], esi
jbe 0x5cdc0f
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + esi*4]
mov edi, dword [ebp - 0x20]
cmp edi, dword [eax]
jne 0x5cdc09
mov edi, dword [ebp + 0x50]
cmp edi, dword [eax + 8]
jne 0x5cdc09
mov dword [eax + 8], edx
mov edi, dword [ecx + edx*4]
add dword [eax + 0xc], edi
inc esi
cmp esi, dword [ebx + 8]
jb 0x5cdbeb
lea eax, [ecx + edx*4]
mov edx, dword [ebp + 0x50]
lea ecx, [ecx + edx*4]
mov edx, dword [ecx]
add dword [eax], edx
and dword [ecx], 0
mov eax, dword [ebp + 0x70]
mov ecx, dword [eax + 0xc]
mov esi, dword [eax + 0x10]
mov edx, dword [ebp + 0x74]
mov edi, dword [edx + 0x10]
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x58]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0xc]
mov eax, dword [eax + 0xc]
mov edi, dword [ebp + 0x74]
mov edi, dword [edi + 0x10]
mov esi, dword [edx + 0x10]
shl ecx, 2
lea edi, [edi + eax*4]
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]
mov ecx, edx
call fcn.005c396a
test eax, eax
je 0x5cdc7e
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x60]
mov edi, dword [eax + 8]
lea esi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x58]
call fcn.005c397c
test eax, eax
je 0x5cdcca
cmp dword [ebp + 0x54], 0
lea esi, [ebp + 0x28]
je 0x5cdc96
lea esi, [ebp - 0x1c]
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp + 0x74]
mov edi, dword [edx + 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp dword [ebp + 0x54], 0
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp + 0xc]
je 0x5cdcbe
lea esi, [ebp - 0xc]
mov edx, dword [ebp + 0x74]
mov edi, dword [edx + 8]
mov ecx, eax
add edi, eax
jmp 0x5cdd20
mov ecx, dword [ebp + 0x58]
call fcn.005c398e
test eax, eax
je 0x5cdd2e
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x74]
mov edi, dword [eax + 8]
shl ecx, 2
mov edx, ecx
shr ecx, 2
lea esi, [ebp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [eax + 8]
mov ecx, dword [ebp + 0x60]
shl ecx, 2
add edi, ecx
mov edx, ecx
shr ecx, 2
lea esi, [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp + 0x60]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 8]
mov ecx, edx
shl ecx, 2
lea esi, [ebp - 0x30]
lea edi, [eax + edx*8]
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]
mov ecx, dword [ebp + 0x20]
xor esi, esi
cmp ecx, esi
je 0x5cdd3e
push 1
call fcn.005c2f8e
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebp + 0x68]
mov edx, dword [ebp + 0x74]
shl eax, 2
mov dword [eax + ecx], edx
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x3c]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 0xc], esi
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebp + 0x48]
jbe 0x5cdde7
sub eax, dword [ebp + 0x48]
mov dword [ebp + 0x20], eax
shl eax, 2
push eax
mov dword [ebp + 0x5c], eax
call fcn.0064adfa
cmp eax, esi
pop ecx
mov dword [ebp + 0x3c], eax
je 0x5cde28
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x5c]
mov edi, dword [ebp + 0x3c]
lea esi, [eax + edx*4]
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]
mov ecx, dword [ebp + 0x68]
mov eax, dword [ebx + 0x18]
sub edx, ecx
shl edx, 2
push edx
mov edx, dword [ebp + 0x40]
add edx, eax
push edx
mov edx, dword [ebp + 0x20]
add edx, ecx
lea eax, [eax + edx*4]
push eax
call fcn.0061f670
mov edi, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x5c]
add edi, dword [ebp + 0x40]
mov esi, dword [ebp + 0x3c]
push dword [ebp + 0x3c]
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]
call fcn.0064ae23
add esp, 0x10
mov ecx, ebx
call fcn.005c7734
mov eax, dword [ebp + 0x44]
dec eax
mov dword [ebp + 0x1c], 1
mov dword [ebp + 0x64], eax
inc dword [ebp + 0x64]
mov eax, dword [ebp + 0x64]
cmp eax, dword [ebx + 0xc]
jb 0x5cd581
xor eax, eax
cmp dword [ebp + 0x1c], eax
sete al
mov esi, eax
push dword [ebp + 8]
call fcn.0064ae23
pop ecx
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x78
leave
ret
mov esi, 0x8007000e
jmp 0x5cde15
mov ecx, dword [ebp + 0x74]
jmp 0x5cd616